0

了解英语不是每个人的第一语言,所以对糟糕的拼写和语法要宽容我正在从事 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) 并返回:Hello + who + from classlibrary1 NOT FROM wcfservice1。

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

4

1 回答 1

1

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

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

将其更改为

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

同样在您的 web.config 中:

  <service name="WcfService1.Service1"> <!-- becomes... -->
  <service name="ClassLibrary1.Class1">
于 2013-11-07T15:52:43.947 回答