我有一个场景,我有一个现有的界面,我希望WCF服务实现。
主要目标是允许我们使用依赖注入,以便可以将实现注入为WCF服务或本地程序集。
E.g。
现有界面
public interface IStuffDoer
{
bool DoStuff(string parameter);
}
现在我需要一个IStuffDoer
类型的WCF服务合约。我能想到的一个选择是
[ServiceContract]
public interface IStuffDoerService: IStuffDoer
{
}
但请注意,现有界面的操作不是由[ServiceContract]
或[OperationContract]
属性修饰。
由于无法覆盖父接口方法签名,我唯一的选择(据我所知)是用WCF合约属性装饰原始接口,如下所示:
[ServiceContract]
public interface IStuffDoer
{
[OperationContract]
bool DoStuff(string parameter);
}
这样做有什么害处吗?
对现有的非WCF应用程序或正在使用该合同的影响是什么?
如果它以某种方式影响他们,那么什么是我最好的选择?
答案 0 :(得分:2)
对现有的非WCF应用程序或正在使用该合同的影响是什么?
没有影响。它仍然是相同的界面。属性不会自行执行任何操作。您可以使用它们来装饰您的界面,并仍然将其用作“普通”界面。