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 を実装したいと考えています。

しかし、Service1.svc のすべてのメソッドを WcfService1 からコピーしたくありません。

WcfService1.IService1 を使用して ClassLibrary1.Class1 を実装し、それを WCF で使用できるかどうかわかりません。

クライアント テスト WCF を実行しているときに、メソッド Hello(string) を使用して戻りたいと思います: Hello + who + from classlibrary1 NOT FROM wcfservice1。

解決策を探していますが、見つかりません:/

4

1 に答える 1

1

WcfService1.Service1クラスを定義するべきではありません。ClassLibrary1.Class1クラスを使用するだけです。ClassLibrary1さんのプロジェクトからさんのプロジェクトを参照WcfService1し、必要に応じて 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 に答える