我有一个包含私有字段的对象,其中包含POCO集合。我希望能够使用Newtonsoft.Json便携包进行序列化。适当的方式是什么?换句话说,合同解析器的实施应该是什么? 感谢。
需要是可移植的,因此除非引入了填充库,否则使用绑定标志不是一个选项。
至于具体的例子,想一想这样的事情:
[Serializable]
public class SimpleItemDto
{
public string Name { get; set; }
public double Price { get; set; }
public int Quantity { get; set; }
}
public interface ISimpleProvider
{
IEnumerable<SimpleItemDto> GetSimpleItems();
}
[Serializable]
class SimpleProviderBuilder : FakeBuilderBase<ISimpleProvider>
{
private readonly List<SimpleItemDto> _warehouseItemsStorage = new List<SimpleItemDto>();
private SimpleProviderBuilder()
{
}
public static SimpleProviderBuilder CreateBuilder()
{
return new SimpleProviderBuilder();
}
public void WithWarehouseItems(IEnumerable<SimpleItemDto> warehouseItems)
{
_warehouseItemsStorage.Clear();
_warehouseItemsStorage.AddRange(warehouseItems);
}
protected override IServiceCall<ISimpleProvider> CreateServiceCall(IHaveNoMethods<ISimpleProvider> serviceCallTemplate)
{
var setup = serviceCallTemplate
.AddMethodCallWithResult(t => t.GetSimpleItems(), r => r.Complete(GetSimpleItems));
return setup;
}
private IEnumerable<SimpleItemDto> GetSimpleItems()
{
return _warehouseItemsStorage;
}
}
注意DTO也可能变得复杂,因此序列化必须是分层的。