Mar*_*tus 5 c# constructor constraints
可能重复:
定义构造函数签名的接口?
我有类和接口的混合层次结构.
为了使用序列化,我需要在每个类中存在一个默认构造函数.如果编译器可以告诉我在层次结构中某处缺少默认构造函数,我真的很感激.(在编译时看到问题,而不是在后面的测试中)
我想要的可能是一些标记或属性,但我找不到任何东西.
就像是:
[ForceDefaultConstructor]
interface IVeryQuickSerializable
{
Serialize();
Deserialize();
}
Run Code Online (Sandbox Code Playgroud)
会很好!
但是非常感谢.
有一个限制:我无法更改序列化.使它成为通用可以解决问题,但我没有源.编写包装器可能会完成这项工作,但是它会为从顶层序列化接口派生的对象(可能不会更改)带来漏洞.
您不能在界面或属性中执行此操作.
两个想法:
在使用该T : new()子句的通用API中公开您的序列化代码,即
void Serialize<T>(T obj, ...) where T : IVeryQuickSerializable, new()
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
4360 次 |
| 最近记录: |