在WCF(Windows Communication Foundation)中,要获取当前服务监听的端口号,可以通过以下几种方式:
1. 使用服务端点信息:
在WCF中,服务通常绑定到一个或多个端点(endpoint)。每个端点都包含一个地址(address)和一个绑定(binding)。可以通过访问服务端点的地址来获取端口号。
以下是一个示例代码,展示如何在服务启动后获取端口号:
```csharp
using System.ServiceModel;
public class ServiceHostExample
{
public static void Main()
{
// 创建服务宿主
ServiceHost host = new ServiceHost(typeof(MyService));
try
{
// 打开服务宿主
host.Open();
// 获取端点地址
EndpointAddress endpointAddress = host.BaseAddresses[0];
// 获取端口号
string port = endpointAddress.ToString().Substring(endpointAddress.ToString().LastIndexOf(':') + 1);
Console.WriteLine("Service is listening on port: " + port);
// 等待用户输入,以便可以关闭服务
Console.WriteLine("Press [Enter] to exit...");
Console.ReadLine();