循环依赖问题

时间:2013-03-04 19:40:02

标签: c# wcf

我目前正在尝试学习如何创建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();

            }
        }

感谢您提供的任何帮助。

1 个答案:

答案 0 :(得分:1)

托管应用程序(MainProject)中应该没有太多代码。它仅负责托管服务,这是其唯一目的。 请勿在此处放置常用代码。

而是使用常用代码创建另一个类库,并从SoapServer和MainProject 创建对它的引用。