使用内部构造函数设置没有setter的属性

时间:2014-12-03 09:51:29

标签: c# reflection constructor internal

我遇到了与本主题相同的问题:Set C# Property that has no Setter 不同之处在于我的Class有一个内部构造函数,所以我必须创建一个这样的实例:

 var _TxObjectImpl = (TxObjectImpl) typeof (TxObjectImpl).GetConstructor(
                BindingFlags.NonPublic | BindingFlags.Instance,
                null, Type.EmptyTypes, null).Invoke(null);

该类有两个属性:

 public string StringId
        {
            get
            {...
            }
         return str;
        }

public object PlanningRepresentation
        {
            get
            {
                return ...;
            }
        }

是否可以设置这些属性并同时调用构造函数?

1 个答案:

答案 0 :(得分:2)

您无法从没有可访问的publicprotected构造函数的基类派生您的类。

如果基类实现了一个接口,你可以使用decorator模式并使用反射创建它的实例作为新类的私有字段。