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