使用 类 这种编程方式,一个重要原因就是类的封装性。
通过不同的访问修饰符(如private、public、protected等),可限定类成员具有不同的访问级别。
一般来说:
private 修饰符修饰的成员,只能由该类内部访问;
protected 修饰的成员,除了允许当前类访问外,还可运行继承类访问;
internal 修饰的成员,可允许同一个程序集内部访问;
public 修饰的成员,不但允许同一程序集内部访问,还可运行其他程序集访问(当然,类也必须是 public 的)。
在创建动态方法(DynamicMethod)时,通过选择合适的构造函数和参数,是可以访问其他类的私有成员的,这无疑为采用发出动态方法的编程方式提供了更灵活的选择。
DynamicMethod 类的构造函数有:
| 名称 | 说明 |
|---|---|
| DynamicMethod(String, Type, Type[]) | 初始化匿名承载的动态方法,指定方法名称、返回类型和参数类型。 |
| DynamicMethod(String, Type, Type[], Boolean) | 初始化匿名承载的动态方法,指定方法名称、返回 |

本文介绍了如何使用.NET的DynamicMethod类来访问其他类的私有成员。通过选择合适的构造函数,特别是使用带有restrictedSkipVisibility参数的版本,可以绕过访问限制。文中提到在尝试访问受限成员时遇到问题,通过设置restrictedSkipVisibility为true解决了问题,使得程序能够正确编译和运行。
最低0.47元/天 解锁文章
813

被折叠的 条评论
为什么被折叠?



