C#类里有一些保护函数,即protected类型的函数,由于我不是继承这个类做开发,而是使用这个类,查资料知这个保护方法有用。我想用它,而不是继承这个类后再用它。
如:
public class A
{
protected void B()
{
   语句
}}public class B
{
   B b=new B();
   //这里能否通过某种技巧来用A类中的保护方法B?记得在某本书里看国,利用软件欺诈技术,我忘了。请赐教!
}

解决方案 »

  1.   

    那不是违反了对象的规则?还是重新派生一个类,提供public方法以访问protected方法,
    然后用这个派生类进行开发
      

  2.   

    proctected不是只有本类和继承类才能访问吗
      

  3.   

    写一个中转类C,继承A,在中转类C中写一个public的方法D,在这个方法里调A类中B方法,然后在B类中实例化C,调用方法D.
      

  4.   

    多搞个类,不过lz不要继承类A呢,那不直接由B继承A这样更方便?
    请问下,这样两个方法有什么区别吗?
    谢谢了!
      

  5.   


        MethodInfo minfo = typeof(A).GetMethod("B",
            BindingFlags.Instance|
            BindingFlags.Static|
            BindingFlags.Public|
            BindingFlags.NonPublic);    // 如果方法中没有访问类成员第一个参数可以用null
        // 否则要创建一个A类的实例
        object obj = null;     object[] args = new object[]{arg0, arg1, arg2};   // 如果方法B没有参数,参数数组args给null    // 调用
        minfo.Invoke(obj, args);