Web services 共享在WCF服务中实现的接口

Web services 共享在WCF服务中实现的接口,web-services,wcf,Web Services,Wcf,我有wcf网络服务。当然,Serice使用ServiceContract属性实现insterface。它还实现了另一个没有ServiceContract属性且存储在外部dll中的接口。当我生成代理时,我并没有在代理对象中实现第二个接口。有没有办法让svcutil生成实现它的代理,或者我需要手动添加代码 关于如果在将包含代理的项目中添加对包含接口定义的程序集的引用,代理生成工具将使用已知接口,而不是生成自己的接口。这是不可能的。这个实现是什么样子的?它应该从原始类复制粘贴实现吗?如果要将方法公开为

我有wcf网络服务。当然,Serice使用ServiceContract属性实现insterface。它还实现了另一个没有ServiceContract属性且存储在外部dll中的接口。当我生成代理时,我并没有在代理对象中实现第二个接口。有没有办法让svcutil生成实现它的代理,或者我需要手动添加代码


关于

如果在将包含代理的项目中添加对包含接口定义的程序集的引用,代理生成工具将使用已知接口,而不是生成自己的接口。

这是不可能的。这个实现是什么样子的?它应该从原始类复制粘贴实现吗?如果要将方法公开为web服务,则必须将它们放在具有
ServiceContract
属性的类或接口中

假设原始服务类如下所示:

public class MyService : IServiceContract, IOtherInterface
{
    ...

    public ObjectFromServiceAssembly MethodFromOtherInterface()
    {
        Console.WriteLine("Create instance of some object.");
        return new ObjectFromServiceAssembly();
    }
}

在生成的代理端,
MethodFromOtherInterface
将如何查看?它不能简单地从服务端复制您的实现。

这没有意义。如果接口未标记为ServiceContract,则它不会在服务上公开,并且无法从代理调用它。如果您希望代理也实现接口,那么还必须在代理中编写接口的实际实现(客户端!)=从服务复制代码。最好的方法不是在服务中实现接口,而是使用helper类,并在客户端和服务器之间共享该类。您将只有一个实现,您将共享它。

问题是代理生成工具跳过了未标记任何属性的已实现接口stackoverflow中的一个错误-在以前的答案中添加了注释-在此期间,出现了新答案,注释转到错误的答案此答案的注释:这是服务:类EchoImplementation:IEchoContract,接口1{public EchoMessage Echo(EchoMessage Message){EchoMessage _returningMessage=new EchoMessage();_returningMessage.ReturnMessage=Message.OutMessage;return _returningMessage;}#region Interface1 Members public void dummy(){}#endregion}这是合同[ServiceContract]公共接口IEchoContract{[OperationContract]EchoMessage Echo(EchoMessage Message);}这是附加接口:公共接口接口1{void dummy();}..。这是生成的代理(在vb中)(仅实现IEchoContract):u部分公共类EchoContractClient继承System.ServiceModel.ClientBase(代理.IEchoContract的)实现Proxy.IEchoContract Public Sub New()MyBase.New End Sub问题是代理生成工具会跳过未标记任何属性的已实现接口