Force implementation of default constructor
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Interface defining a constructor signature?
我有一个混合的类和接口层次结构。
为了使用序列化,我需要在每堂课。如果编译器能分辨出在层次结构中的某个位置缺少默认构造函数。(在编译时看到问题,而不是在以后的测试中看到问题)
我想要的可能是一些标记或属性,但我什么也找不到。
类似:
1 2 3 4 5 6 | [ForceDefaultConstructor] interface IVeryQuickSerializable { Serialize(); Deserialize(); } |
太棒了!
但任何类似的事情都是非常感激的。
有一个限制:我不能改变序列化。使其通用可以解决问题,但我没有来源。编写一个包装器可能会完成这项工作,但它会对于从顶级序列化派生的对象有一个漏洞接口(不得更改)。
在接口或属性中不能这样做。
两个想法:
- 集成测试:使用反射查找所有相关类,并在测试中检查它们
在使用
T : new() 子句的通用API中公开序列化代码,即1
很可能有更好的解决方案,但是您可以编写一个应用程序,该应用程序使用反射在后期生成事件期间检查程序集。