0

假设我的程序中的所有组件都有最简单的接口。

public interface IComponent
{               
}

我知道要为项目编写的每个组件都必须实现这个接口,而且我知道所有这些组件都将使用 C# 的BinaryFormatter. 这意味着每个组件都必须使用该[Serializable]属性进行装饰。现在有没有办法强制添加这个属性?

我说“现在”是因为我可以找到各种 SO 问题告诉我这是不可能的 - 但我能找到的所有问题都是从 2008 年开始的。从那时起,C# 规范中有什么变化吗?还是我必须使用旧答案中描述的解决方法之一?

4

1 回答 1

0

IComponent您可以编写单元测试,使用反射从库中获取所有实现,并检查它们是否具有Serializable属性。我不相信自 2008 年以来 .NET 中引入了任何新的东西可以使检查编译时间具体化,抱歉。

于 2017-06-04T05:44:31.113 回答