oldukça aynı değil JsonConverter türetilmiş özel dönüştürücü ile bağımlılık enjeksiyon almak için bir yolu var mı: cevaptırbu kadar
How do I Inject Dependencies with Ninject, where instances are deserialised from json
size bir servis gerekmez serileştirilemeyen veri sınıfı neyse. Bağımlılığı JsonConverter
'dan türetilmiş bir sınıfla kullanmanın bir yolu var mı?
[JsonConverter(typeof(MyCustomConverter))]
public class Foo
{
public string SomeProp { get; set; }
}
Ve: Eğer bu olsaydı Örneğin,
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();
//...
}
}
JSON.Net o Ninject o şey yapalım almak için MyCustomConverter
başlatır nasıl içine kanca yine de var mı?
EDIT Bu, önerilen dupe gibi bir hizmeti Foo
içine enjekte ETMEZ. Bu sadece MyCustomConverter
içine enjekte edilir, böylece Foo
'u seri hale getirebilir.
@StriplingWarrior: Yinelenen tamamen aynı değil. Serileştirdiğim nesneyi * içine * eklememek istemiyorum. Serileştirdiğim nesne herhangi bir hizmete ihtiyaç duymaz, sadece json dönüştürücü bağımlılık enjeksiyonuna ihtiyaç duyar. –
"MyCustomConverter" türünüze, özel durum hatalarında "IMyService" uygulamasının döndürülmesine izin veren bazı statik (iş parçacığı statik?) Olayı ekleyebilir misiniz? Garip, ama [yapılabilir] (http://stackoverflow.com/questions/1210026/return-a-value-from-an-event-is-there-a-good-practice-for-this). Ayrıca, belki burada görebilirsiniz: http://blog.ploeh.dk/2013/09/08/di-and-events-third-party-connect/ – dbc
@dbc: İlginç bir fikir, bunun hakkında düşünmek zorundayım bir. –