C# WCF接口实现

C# WCF接口实现,c#,wcf,interface,implementation,C#,Wcf,Interface,Implementation,要明白英语不是每个人的第一语言,所以要宽容糟糕的拼写和语法。我正在做一个C#/WCF项目 我需要通过WCF服务web使用ClassLibrary1中包含的方法 这是我的测试解决方案的代码 using WcfService1; namespace ClassLibrary1 { public class Class1 : IService1 { public string Hello(string who) { return

要明白英语不是每个人的第一语言,所以要宽容糟糕的拼写和语法。我正在做一个C#/WCF项目

我需要通过WCF服务web使用ClassLibrary1中包含的方法

这是我的测试解决方案的代码

using WcfService1;

namespace ClassLibrary1
{
    public class Class1 : IService1
    {
        public string Hello(string who)
        {
            return "Hello " + who + " from classlibrary1 NOT FROM wcfservice1";
        }
    }
}
以及WcfService1:

 namespace WcfService1
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        string Hello(string who);
    }
}  



namespace WcfService1
{
    public class Service1 : IService1
    {
        public string Hello(string who)
        {
            return "Hello " + who + " from wcfservice1";
        }
    }
}
这很有效,但这不是我的目标。在我的实际解决方案中,我有大约500多个方法,我想实现上面提到的IService1.cs

但是我不想从WcfService1复制Service1.svc中的所有方法

我不知道是否可以使用WcfService1.IService1来实现ClassLibrary1.Class1并通过WCF使用它

我希望在运行客户端测试WCF时,我可以使用我的方法Hello(string)并从classlibrary1返回:Hello+who+,而不是从wcfservice1返回


我正在寻找解决方案,但找不到://

您不应该定义
WcfService1.Service1
类。只需使用
ClassLibrary1.Class1
类即可。从
WcfService1
的项目中引用
ClassLibrary1
的项目,并根据需要更改web.config和.svc文件以使用
Class1
。例如,您可能有一个.svc文件,该文件当前为:

<%@ ServiceHost Service="WcfService1.Service1" %>

换成

<%@ ServiceHost Service="ClassLibrary1.Class1" %>

同样,在web.config中:

  <service name="WcfService1.Service1"> <!-- becomes... -->
  <service name="ClassLibrary1.Class1">


它们实现的是相同的
IService1
接口,还是有两个同名接口?能否添加解决方案树的图像?我认为您需要做的是在WCF服务项目中添加对ClassLibrary1的引用。然后在.svc文件中,您可以将隐藏的代码指定为ClassLibrary1.csfile@TimS. 是的,它们实现了相同的IService1。如何打开.svc文件以查看代码?我完全迷路了!我发现了如何改变它!现在,我的Service1.svc看起来像:但是仍然有一个错误WcfService1.Service1没有实现接口成员WcfService1.IService1.Hello(字符串)。我删除了我服务中的所有方法1,因为通常我不需要它!需要一些帮助:/@Shrimp您应该删除
codebhind
语言
,和
调试
标记。它们与类的定义方式无关。您可以删除Service1.svc.cs文件。在我的web.config中,我没有,我应该在哪里更改第一个提示?我不能更改我的.svc?实际上,在my.svc中,只有来自wcfservice1的方法Hello。或者我应该在我的“代码隐藏”中做些别的事情?我怎么能看到它?我完全迷路了@虾如果你在web.config中没有看到任何关于它的信息,现在不要担心它。只要试着把剩下的整理好,并试着测试服务——如果它能工作,很好,如果它不能工作,那么希望你能对仍然引用旧类的内容或其他不正确的内容有所了解。