创建无参数 属性 属性 c#
Creating a parameterless property attribute c#
我正在尝试创建一个读取字符串 属性 的属性,做一些工作并替换它。
如何从属性访问 属性?
属性:
[AttributeUsage(AttributeTargets.Property)]
public class CustomAttribute : Attribute
{
public CustomAttribute()
{
//get the property value
//propertyValue = propertyValue + "!";
//set the property value to be the updated propertyValue;
//how do i get the value of the property the attribute is added to and modify it?
}
}
用法:
[CustomAttribute]
public string MyProperty { get; set; }
属性不会做任何事情。它们是元数据 - 除非您查询属性模型的元数据,或者您正在使用某些 IL 重写工具,否则它们不会激活。请注意,属性不能直接访问它所在的上下文 - 为此,您需要向属性添加方法,并在物化属性上调用这些方法,传入 任何需要的上下文。
只有当您通过反射 API 请求时才会创建一个属性的对象实例(并且:它会在您每次查询时为您提供一个完全不同的实例)。在那之前,它只是作为元数据存在。
我正在尝试创建一个读取字符串 属性 的属性,做一些工作并替换它。
如何从属性访问 属性?
属性:
[AttributeUsage(AttributeTargets.Property)]
public class CustomAttribute : Attribute
{
public CustomAttribute()
{
//get the property value
//propertyValue = propertyValue + "!";
//set the property value to be the updated propertyValue;
//how do i get the value of the property the attribute is added to and modify it?
}
}
用法:
[CustomAttribute]
public string MyProperty { get; set; }
属性不会做任何事情。它们是元数据 - 除非您查询属性模型的元数据,或者您正在使用某些 IL 重写工具,否则它们不会激活。请注意,属性不能直接访问它所在的上下文 - 为此,您需要向属性添加方法,并在物化属性上调用这些方法,传入 任何需要的上下文。
只有当您通过反射 API 请求时才会创建一个属性的对象实例(并且:它会在您每次查询时为您提供一个完全不同的实例)。在那之前,它只是作为元数据存在。