一个WCF服务可以返回另一个吗?

Waf*_*fle 4 c# wcf

例如,WCF服务可以充当其他WCF服务的工厂吗?例如:

[ServiceContract(Namespace = "Foo")]
interface IThing
{
    [OperationContract]
    void DoSomething();
}

[ServiceContract(Namespace = "Foo")]
interface IMakeThings
{
    [OperationContract]
    IThing Create(string initializationData);
}
Run Code Online (Sandbox Code Playgroud)

同样,接口可以将另一个接口作为参数吗?

[ServiceContract(Namespace = "Foo")]
interface IUseThings
{
    [OperationContract]
    void UseThing(IThing target);
}
Run Code Online (Sandbox Code Playgroud)

这需要调整已知类型吗?

所有接口都是预先定义的,并且客户端和服务都知道.

Thi*_*tes 8

  1. 不.当您浏览网页时,您不会处理C#中的引用,因此您将无法返回不可序列化的对象.即便如此,只有标记为DataMember数据才会出现.

  2. 是.您必须调整已知类型,但同样,这将是DataContract的接口,而不是OperationContract