【发布时间】:2011-09-13 02:26:06
【问题描述】:
背景:这个问题是关于在 C# .NET 4.0 中记录 POCO 类的更改跟踪。
假设我有一个带有 Name(字符串)属性的 Person 类。该 Name 属性有一个名为 [IsDirty(true/false)] 的自定义属性,由属性审计类动态设置。
[IsDirty(true)]
public string Name { get; set; }
检测到更改并设置属性后,我将通过普通 XML 序列化将对象存储在 MS SQL 数据库(XML 列类型)中。
我想不通的是,是否有可能以某种方式序列化我的自定义属性 IsDirty 及其当前值 - 最好作为序列化 XML 元素(名称)上的 XML 属性,以便最终的 xml 如下所示:
<Name IsDirty="true">John</Name>
任何想法/信息将不胜感激-
【问题讨论】:
-
并且您还希望能够将其反序列化并将该属性也设置为适当的值?
-
我不明白您为什么要使用属性来存储“脏”状态。我不认为你能做到这一点。你能解释一下它是如何工作的吗?
-
@Valentin - 是的,抱歉,不清楚。我希望能够将其反序列化回对象的原始状态。
-
@Scott - 好吧,它是一个实例变量,所以我在这里假设(你知道它在哪里)我可以使用 GetCustomAttributes() 来(最终)获得对单个属性的访问 - 一旦我'已经知道我可以设置我的属性值。 (我认为)
-
@kman0 我以为每次调用
GetCustomAttributes都会创建新的属性?在这种情况下,它对于存储状态不会很有用。
标签: c# .net xml serialization