使用属性拦截属性分配

时间:2013-05-23 05:13:09

标签: c# attributes

是否可以在属性上放置一个属性来拦截对该属性的赋值调用?

我将如何使用它的一个示例是,当用户分配string.Empty时,使其具有此属性的字符串属性将设置为null

我确信这样的事情有很多其他可能用途,但目前这正是我正在寻找的。

编辑:

例如:

class A
{
    [NotNullableString]
    public string SomeString { get; set; }
}

NotNullableStringAttribute会检查set的输入值,如果为空,则将其替换为string.Empty

2 个答案:

答案 0 :(得分:2)

如果您想使用C#属性执行此操作,则需要使用IL编织。

最受欢迎的图书馆是PostSharp:http://ayende.com/blog/3640/first-steps-with-post-sharp快递版是免费的:http://www.postsharp.net/aspects

答案 1 :(得分:0)

如果您坚持在工作流程中没有构建后步骤并且您可以使用属性,那么答案是它目前无法实现。