Not quite the same as this:
How do I Inject Dependencies with Ninject, where instances are deserialised from json
Where the answer is that your data class that you deserialized shouldn't need a service anyway. Is there a way to use dependency inject with a class derived from JsonConverter
? For example, if you had this:
[JsonConverter(typeof(MyCustomConverter))]
public class Foo
{
public string SomeProp { get; set; }
}
And:
public class MyCustomConverter : JsonConverter
{
private readonly IMyService myService;
public MyCustomConverter(IMyService _myService)
{
myService = _myService;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
var bar = myService.SomeFunctionThatMightEffectDeserialization();
//...
}
}
Is there anyway to hook into how JSON.Net instantiates MyCustomConverter
to get it to let Ninject do it's thing?
EDIT This is NOT injecting a service into Foo
like the suggested dupe. This is injecting only into MyCustomConverter
so that it can then deserialize Foo
.