【发布时间】:2014-12-03 09:51:29
【问题描述】:
我有一个类似的问题,如本主题所述: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 ...;
}
}
是否可以同时设置这些属性和调用上面的构造函数?
【问题讨论】:
-
你为什么要这样做?因为您专门将该变量标记为
readonly。显然,一旦在构造函数中设置它就无法更改 -
所以你问如何构造和修改一个类,其作者在确保你不能构造或修改该类时遇到了麻烦?下一步是什么?那些作者提出一个新问题,他们可以在课堂上进行哪些更改以阻止您的代码工作?
-
@alexo 这个问题很不清楚,我反复读了好几遍才知道,但是不,另一个问题是关于让
StackTrace属性返回一些不同的东西,并且很难做到- 在构造函数中编码堆栈跟踪。这个问题是当基类的构造函数不可访问时如何调整该代码工作。 -
@hvd ,问题是我的任务很紧急。我正在开发的软件的开发人员在同一家公司,但我等不及修补程序了;这只是一个临时解决方法。
标签: c# reflection constructor internal