@@ -21,12 +21,14 @@ namespace JsonApiDotNetCore.Serialization
2121 /// </summary>
2222 public abstract class BaseDocumentParser
2323 {
24- protected readonly IResourceContextProvider _provider ;
24+ protected readonly IResourceContextProvider _contextProvider ;
25+ private readonly IServiceProvider _serviceProvider ;
2526 protected Document _document ;
2627
27- protected BaseDocumentParser ( IResourceContextProvider provider )
28+ protected BaseDocumentParser ( IResourceContextProvider contextProvider , IServiceProvider serviceProvider )
2829 {
29- _provider = provider ;
30+ _contextProvider = contextProvider ;
31+ _serviceProvider = serviceProvider ;
3032 }
3133
3234 /// <summary>
@@ -131,7 +133,7 @@ private JToken LoadJToken(string body)
131133 /// <returns>The parsed entity</returns>
132134 private IIdentifiable ParseResourceObject ( ResourceObject data )
133135 {
134- var resourceContext = _provider . GetResourceContext ( data . Type ) ;
136+ var resourceContext = _contextProvider . GetResourceContext ( data . Type ) ;
135137 if ( resourceContext == null )
136138 {
137139 throw new InvalidRequestBodyException ( "Payload includes unknown resource type." ,
@@ -140,7 +142,7 @@ private IIdentifiable ParseResourceObject(ResourceObject data)
140142 "If you have manually registered the resource, check that the call to AddResource correctly sets the public name." , null ) ;
141143 }
142144
143- var entity = ( IIdentifiable ) TypeHelper . CreateInstance ( resourceContext . ResourceType ) ;
145+ var entity = ( IIdentifiable ) TypeHelper . CreateEntityInstance ( resourceContext . ResourceType , _serviceProvider ) ;
144146
145147 entity = SetAttributes ( entity , data . Attributes , resourceContext . Attributes ) ;
146148 entity = SetRelationships ( entity , data . Relationships , resourceContext . Relationships ) ;
0 commit comments