获取WCF所支持的绑定类型

来源:互联网 发布:小型物流仓储软件 编辑:程序博客网 时间:2024/06/06 15:02

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);                        }                    }                }            }        }    }}

执行之后的结果为:

CustomBindingBasicHttpBindingBasicHttpContextBindingNetTcpBindingNetTcpContextBindingWSHttpBindingWSHttpContextBindingDuplicatedChannelBindingMsmqIntegrationBindingValidationBindingNetMsmqBindingNetNamedPipeBindingNetPeerTcpBindingWSFederationHttpBindingWS2007FederationHttpBindingWS2007HttpBindingWSDualHttpBinding请按任意键继续. . .

 

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