Когда у меня есть класс без конструктора по умолчанию, то есть с помощью инъекции зависимостей для передачи его зависимостей, может Newtonsoft.Json
создать такой объект?
Например:
public class SomeFoo
{
private readonly IFooDependency _dependency;
public SomeFoo(IFooDependency dependency){
if(dependency == null)
throw new ArgumentNullException("dependency");
_dependency = dependency;
}
public string Data { get; set; }
public int MoreData { get; set; }
public void DoFoo(){
Data = _dependency.GetFooData();
MoreData = _dependency.GetMoreFooDate();
}
}
Во время сериализации я занимаюсь хранением Data и MoreData (и типа объекта, но не затрудняю ситуацию на данный момент). Теперь, чтобы десериализовать, могу ли я назвать что-то вроде
var obj = JsonConvert.DeserializeObject<SomeFoo>(jsonText);
Как я могу сообщить JsonConvert о моем контейнере DI?
(Примечание. Обход должен состоять в том, чтобы всегда иметь конструкторы по умолчанию в моих классах и вызывать службу Locator там, чтобы получить какие-либо зависимости, которые мне нужны. Я просто ищу еще одно чистое решение, не перебирая мои классы такими конструкторы).