获取WCF所支持的绑定类型

WCF中定义了很多的绑定类型,其中都定义在System.ServiceModel库文件的System.ServiceModel名字空间下,并且都以Binding结束。根据这些特点可以通过反射获取所有的绑定类型。具体实现代码如下(通过windows控制台程序实现):

using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.Reflection;

namespace WCFBinding
{
    class Program
    {
        static void Main(string[] args)
        {
            Module[] mods = Assembly.LoadWithPartialName("System.ServiceModel").GetModules();            
            foreach (Module mod in mods)
            {
                foreach (Type type in mod.GetTypes())
                {
                    if (type.Name.EndsWith("Binding"))
                    {
                        if (type.IsClass && !type.IsAbstract)
                        {
                            
                            Console.WriteLine(type.Name);
                        }
                    }
                }
            }
        }
    }
}

执行之后的结果为:

CustomBinding
BasicHttpBinding
BasicHttpContextBinding
NetTcpBinding
NetTcpContextBinding
WSHttpBinding
WSHttpContextBinding
DuplicatedChannelBinding
MsmqIntegrationBinding
ValidationBinding
NetMsmqBinding
NetNamedPipeBinding
NetPeerTcpBinding
WSFederationHttpBinding
WS2007FederationHttpBinding
WS2007HttpBinding
WSDualHttpBinding
请按任意键继续. . .

 

其中有17个绑定类型,不同的机器可能结果会有不同。本运行环境是.NET v4.0.30319

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章