我正在寻找一种方法来在运行时更改/添加给定类的属性的访问器。 示例代码波纹管,在类的.ctor上运行,我想要达到的是将'TheSetMethod'添加到'设置'每个'字段'的访问器,以便通过在运行时更改字段。 供参考:这背后有一个实现约束,这使得我这样做,而不是使用标准的“get; set;”祖先,所以我不能'得到;设定';'在设计时间。如何在运行时更改属性访问器
public string field1;
.ctor()
{
Type typeWebConfig = this.GetType();
MemberInfo[] Fields = typeWebConfig.GetMembers(BindingFlags.Public |
BindingFlags.Instance);
foreach(MemberInfo member in Fields)
if(member.MemberType == MemberTypes.Field)
{
FieldInfo field = (FieldInfo)member;
//add a delegate method to field's 'SET'
}
}
void TheSetMethod(string propName)
{
}
任何帮助将不胜感激。 干杯
您是否将C#与动态语言混淆? – 2012-03-28 23:52:15
所以如果一个类使用另一个类,并且突然使用的类改变了它的访问器,第一个类如何处理它? – 2012-03-28 23:52:50
感谢您的意见,但我真的很感激,如果你真的帮助:) – Afshin 2012-03-29 00:07:43