0

我正在学习 WCF,并在一个简单的 WCF 示例中找到了这篇文章。

在下面的代码中(来自上面的文章),为什么System.ServiceModel.Dispatcher.ChannelDispatcher在 foreach 循环中有 a 时需要完全限定using System.ServiceModel;?虽然ServiceHost不需要完全限定它才能工作,并且它来自与Dispatcher.

如果您在循环中删除System.ServiceModelfrom System.ServiceModel.Dispatcher.ChannelDispatcher,则代码不会编译。

using System;
using System.ServiceModel;

namespace ConsoleHost
{
    class Program
    {
        static void Main(string[] args)
        {
            Type serviceType = typeof(EmailService.EmailValidator);
            Uri serviceUri = new Uri("http://localhost:8080/");

            ServiceHost host = new ServiceHost(serviceType, serviceUri);
            host.Open();

            foreach (System.ServiceModel.Dispatcher.ChannelDispatcher dispatcher in host.ChannelDispatchers)
            {
                Console.WriteLine("\t{0}, {1}", dispatcher.Listener.Uri.ToString(), dispatcher.BindingName); 
            }
        }
    }
}
4

1 回答 1

4

ServiceHost是 System.ServiceModel 命名空间上的一个类(在 using 语句中);ChannelDispatcher是 System.ServiceModel 上的一个类。调度程序命名空间。如果您在下面添加此 using 语句,您将能够使用 ChannelDispatcher 而无需完全限定。

using System.ServiceModel.Dispatcher;
于 2012-06-27T21:25:53.583 回答