我目前正在尝试学习如何创建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();
}
}
感谢您提供的任何帮助。
答案 0 :(得分:1)
托管应用程序(MainProject)中应该没有太多代码。它仅负责托管服务,这是其唯一目的。 请勿在此处放置常用代码。
而是使用常用代码创建另一个类库,并从SoapServer和MainProject 创建对它的引用。