C#Advanced XML Serializer,不需要域对象污染

Chr*_*sic 3 c# domain-driven-design xml-serialization poco

是否存在用于C#的XML序列化程序的任何封闭或开源项目,它们可以大部分序列化任何对象而无需使用大量属性污染我的域对象?那还将处理使用内部泛型类构建的集合的序列化?奖励是它可以处理序列化接口类型属性.另一个好处是它可以序列化具有只读属性的对象(或至少具有标记为内部的get访问器)

Mar*_*ell 5

那么,首先定义"高级",即具体你需要什么,XmlSerializer没有.在POCO方面,XmlSerializer有一个重载的构造函数,它接受所有你可以在属性永远要添加,以避免将它们添加到您的对象模型-但它仍然需要一个公共的无参数的构造函数,并且仅适用于公共读/写字段/属性.如果使用这种方法,您应该缓存/重新使用序列化程序.

我不知道任何类似的替代方案,仅仅因为在大多数情况下这是"足够好" - 并且尝试将现有域对象暴力破解为DTO通常是错误的.这可能是更简单,更易于维护简单域的实体映射到一个新的DTO(S)归属(并有适当的构造函数/属性/等).

请注意,对于ctor/properties问题DataContractSerializer一些答案,但是对xml的外观没有那么精细的控制.