我有一个将由 .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);
}
我查看了这篇文章:
它看起来像我正在尝试完成的工作,但是如果我尝试在接口上使用 KnownType 属性,则会出现编译错误,因此我改用了 ServiceKnownType 属性。