0

我目前正在尝试学习如何创建 WCF 服务,但遇到了一个问题。

我有一个项目,可以调用它MainProject,它是一个控制台应用程序,还有一个名为的第二个项目SoapServer,它被创建为类库。

MainProject不需要引用 ,但SoapServer确实SoapServer需要引用MainProject.

但是,即使现在MainProject不需要访问SoapServer它,它也是为了让控制台应用程序可以在 WCF 服务上启动主机。

但是,这显然会导致循环依赖,因为我不能让 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 回答