我有一个将由.NET客户端使用的WCF服务。我想在操作合同中使用接口作为参数。我还没有完全实现这项服务,以便能够测试这种方法,如果结果是不可行的话,我不想花很多时间。
这是正确的做法吗?
public interface ISchedulerJob
{
void Execute();
}
public class MyJobA : ISchedulerJob
{
public void Execute() { //... }
}
public class MyJobB : ISchedulerJob
{
public void Execute() { //... }
}
[ServiceContract]
[ServiceKnownType(typeof(MyJobA))]
[ServiceKnownType(typeof(MyJobB))]
public interface ISchedulerService
{
[OperationContract]
void Schedule(ISchedulerJob schedulerJob);
}
我看了这篇文章:
using class interface as a parameter in wcf service
看起来我正在尝试完成,但如果我尝试在接口上使用KnownType属性,则会出现编译错误,因此我选择了ServiceKnownType属性。