为实现接口的所有类强制添加属性

时间:2017-06-04 02:59:46

标签: c# interface attributes enforcement

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

public interface IComponent
{               
}

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

我说“现在”,因为我可以找到各种SO问题,告诉我这是不可能的 - 但我能找到的所有问题都来自2008年。从那时起,C#规范中的任何内容都发生了变化吗?或者我是否必须使用旧答案中描述的解决方法之一?

1 个答案:

答案 0 :(得分:0)

您可以编写单元测试,使用反射从库中获取IComponent的所有实现,并检查它们是否具有Serializable属性。我不相信自2008年以来在.NET中引入的任何新内容,可以使编辑时间特定于对象。抱歉。