3

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

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

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

编辑:

例如:

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

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

4

2 回答 2

2

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

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

于 2013-05-23T05:17:56.887 回答
0

如果您坚持在您的工作流程中没有后期构建步骤并且您可以使用属性,那么答案是目前不可能。

于 2013-05-23T05:25:20.463 回答