属性的一致放置——接口、类或两者都有

本文关键字:两者都 接口 属性 | 更新日期: 2023-09-27 18:18:54

我注意到最近一直困扰着我,当我进入一个项目时,我总是以一堆属性结束,这些属性装饰了接口中的方法声明,但也一组不同的装饰方法实现。

最新的实例是我正在使用的WCF,在那里,我只会有一个实现类。尽管如此,一些属性填充接口,而另一些属性填充类。这是糟糕的编码风格吗?

更具体地说-当使用WCF时,可以/应该将所有属性移动到实现类定义中吗?

属性的一致放置——接口、类或两者都有

特定于WCF:

您不能单独将所有属性移动到implementation类,因为WCF Contract是由接口定义的,并且它是暴露给用于发现WCF服务和元数据的WCF客户端的接口。

此外,Attributes被。net运行时使用反射,它们被用来发现和应用元数据到各种AttributeTargets,包括interface, class等。

所以,我认为在接口和类中使用Attributes是可以的,并且不认为.Net runtime 要求取决于使用它们的目标。