我有一个 C# 类,如下所示:
public class MyClass {
private Member member;
public MyClass() {
member = new Member();
}
//.. other properties and methods here.
}
public class Member {
public String property1 { get; set; }
public bool isSet { get; set; }
// other things to do.
}
现在,通常我希望 Member 暴露,像这样:
public class MyClass {
public Member member;
public Member Property {
get { return this.member; }
set { this.member = value; }
}
}
完成并结束。但是,在实际实现中,暴露 Member 对象会带来安全风险,并且只能由 MyClass 处理在内部使用。我的团队更喜欢将其隐藏起来,不再使用,也不能公开使用。鉴于此,我正在通过反思来了解如何做到这一点。我将使用 SetValue() 来制作 MyClassExtension,以进行更简洁的实现,但我得到了有关访问/修改字段的 InvalidOperationExceptions。
有人可以帮忙吗?