![]() |
1
1
不能从类外部实例化该类。大概是故意的 设计 所以你不能实例化它。 我希望有一些静态的方法来获取实例,例如单例属性或工厂方法…但是如果你需要这样做 任何 类型,那不管用。 基本上,你需要重新考虑你的设计-不要试图颠覆课堂作者的意愿。 |
![]() |
2
1
结果,答案就在我面前。 如果有一个类定义如下:
您可以使用我在问题中提到的以下代码来实例化它:
附加参数true,使用 type's default constructor . 结果,我甚至不需要首先使用FormatterServices.GetUninitializedObject。 不过,我要感谢乔恩·斯基特的回答,因为这有助于我质疑我的设计,深入了解activator.createInstance,并稍微提高我对类实例化的理解。 目前,我的解决方案是删除对FormatterServices的使用,并只允许在类型创建出现问题时抛出异常。 目前,根据我所知,使用(t)activator.createInstance(typeof(t),true),我应该能够构建我遇到的大多数类,除了以下类:
然而,事实证明有一种建议 here 要能够实例化此类:
但是在考虑了Jon所说的内容之后,我认为这对于使用我正在增强的测试数据生成器的任何人都没有多大用处。如果有人为了阻止类被实例化而陷入了如此大的麻烦,那么也许除了通过类设计器提供的方法之外,它不应该被构造。 |
![]() |
3
0
你可以用反射来做, 但是
代码如下:
|
![]() |
Bigeyes · 如何在MVVM模式中添加行? 8 年前 |
![]() |
User9898 · 悬停回到原始颜色时为什么选择 9 年前 |
![]() |
Huma Ali · WCF已完成事件中的异常处理 9 年前 |
![]() |
Nerd in Training · 文件副本发布错误 10 年前 |