Код: Выделить всё
Collection:
- Type: TypeA
TypeAProperty: value1
- Type: TypeB
TypeBProperty: value2
Это моя идеальная модель объекта: < /p>
Код: Выделить всё
public class Document
{
public IEnumerable Collection { get; set; }
}
public interface IBaseObject
{
public string Type { get; }
}
public class TypeAClass : IBaseObject
{
public string Type { get; set; }
public string TypeAProperty { get; set; }
}
public class TypeBClass : IBaseObject
{
public string Type { get; set; }
public string TypeBProperty { get; set; }
}
< /code>
На основе моего чтения, я думаю, что лучше всего использовать пользовательский деессериализатор узла, полученный от Inodedeserializer < /code>. В качестве доказательства концепции я могу сделать это: < /p>
public class MyDeserializer : INodeDeserializer
{
public bool Deserialize(IParser parser, Type expectedType, Func nestedObjectDeserializer, out object value)
{
if (expectedType == typeof(IBaseObject))
{
Type type = typeof(TypeAClass);
value = nestedObjectDeserializer(parser, type);
return true;
}
value = null;
return false;
}
}
При использовании JSON.NET я смог использовать CustomCreationConverter , читать Sub-json в jobrege , определить свой тип>, а затем CodeReeReRe, а затем CodeReeChere>, CodeReeReRer>, CodeReeRer>, CODEREARTERTERTERTERTERTERTERTERTERTERTER jobject и повторный уравнение объекта.
Есть ли способ читать, сбрасывать, а затем перечитать nestestobjectdeserializer ?
есть другой тип объекта, который я могу назвать на NestedObjectDeSerializ анализ производного типа?
Подробнее здесь: https://stackoverflow.com/questions/429 ... yamldotnet
Мобильная версия