0

現在、WCF サービスを作成する方法を学習しようとしていますが、問題に直面しています。

MainProjectコンソールアプリケーションであるプロジェクトとSoapServer、クラスライブラリとして作成される2番目のプロジェクトを呼び出します。

MainProjectを参照する必要はありませんSoapServerが、SoapServerは 内から参照する必要がありますMainProject

ただし、現時点ではMainProjectアクセスする必要はありませんが、コンソール アプリケーションが WCF サービスでホストを起動できるようにするためです。SoapServer

ただし、MainProject で SoapServer を参照したり、その逆を参照したりすることはできないため、これは明らかに循環依存を引き起こします。これを丸くする方法はありますか?

以下は、WCF サービスの接続を開く方法です。

public class SoapServer : ISoapServerInterface
    {

        public void startSoapServer()
        {
            Uri baseAddress = new Uri("http://localhost:6525/hello");

            using (ServiceHost host = new ServiceHost(typeof(SoapServer), baseAddress))
            {
                ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
                smb.HttpGetEnabled = true;
                smb.MetadataExporter.PolicyVersion = PolicyVersion.Policy15;
                host.Description.Behaviors.Add(smb);

                host.Open();

                Console.WriteLine("The service is ready at: {0}", baseAddress);
                Console.WriteLine("Press <Enter> to stop the service");
                Console.ReadLine();
                host.Close();

            }
        }

ご協力いただきありがとうございます。

4

1 に答える 1

1

ホスティング アプリケーション (MainProject) には多くのコードが必要ではありません。サービスのホスティングのみを担当し、これが唯一の目的です。よく使用されるコードをそこに配置しないでください。

代わりに、一般的に使用されるコードで別のクラス ライブラリを作成し、SoapServer および MainProject からそれへの参照を作成します

于 2013-03-04T19:44:01.030 に答える