C# 将WCF服务用作类的一部分

C# 将WCF服务用作类的一部分,c#,.net,wcf,C#,.net,Wcf,一个奇怪/愚蠢的问题,但是。。我创建了一个简单的WCF服务,用于侦听来自数据库的数据请求。它作为一个服务在我的机器上正常运行没有问题,但我想知道-这个WCF服务可以作为一个普通类使用吗?比如说 public static void main (String [] args) { MyWcfService service = new MyWcfService (); /* Code to set-up and start listening for requests... */ }

一个奇怪/愚蠢的问题,但是。。我创建了一个简单的WCF服务,用于侦听来自数据库的数据请求。它作为一个服务在我的机器上正常运行没有问题,但我想知道-这个WCF服务可以作为一个普通类使用吗?比如说

public static void main (String [] args) {
    MyWcfService service = new MyWcfService ();
    /* Code to set-up and start listening for requests... */
}

或者它只是在我的机器上作为服务运行吗?

取决于您想要实现什么:

  • 如果使用类的功能,yes,您可以实例化它并调用它的成员
  • 如果将其用作真正的WCF服务,,则需要先托管它。在IIS或Windows服务等中

是的,如果您需要,您可以在控制台应用程序中自行托管WCF服务。您不需要IIS或Windows服务来承载WCF服务。这对于开发和调试非常方便,但可能不是您想要的产品。有关详细示例,请参见。我已经修改了这个示例,以便在下面的代码中完全配置端点。再说一次,不是你一直想要的东西

public static void Main()
{
    MyWcfService instance = new MyWcfService();
    using (ServiceHost serviceHost = new ServiceHost(instance))
    {
        var endpoint = serviceHost.AddServiceEndpoint(typeof(IMyWcfService), new NetTcpBinding(), "net.tcp://localhost:8000/MyWcfService");
        serviceHost.Open();

        // The service can now be accessed.
        Console.WriteLine("The service is ready at {0}", endpoint.Address);
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();
    }
}
publicstaticvoidmain()
{
MyWcfService实例=新的MyWcfService();
使用(ServiceHost ServiceHost=新ServiceHost(实例))
{
var endpoint=serviceHost.AddServiceEndpoint(typeof(IMyWcfService)),新的NetTcpBinding(),“net。tcp://localhost:8000/MyWcfService");
Open();
//现在可以访问该服务。
WriteLine(“服务在{0}处准备好了”,endpoint.Address);
控制台。WriteLine(“按以终止服务”);
Console.WriteLine();
Console.ReadLine();
}
}

请注意,这使用一个实例来服务所有调用,通常WCF会根据需要创建服务类的实例。

我有一个服务器来解析下载的数据并向Android设备发送通知-我希望创建某种REST服务,以便Android应用程序可以向服务器发送请求,例如。获取数据,更改参数等等,现在我考虑一下。。。我并不真的需要它作为WCF服务——即使只是一个简单的可以接受REST请求的HttpListener也会很棒,我只是在这方面几乎没有经验,希望能得到一些指点@SCassidy1986-听起来您可能对Web API感兴趣: