BindingCollection 類別

定義

表示系結的集合。

public ref class BindingCollection sealed : Microsoft::Web::Administration::ConfigurationElementCollectionBase<Microsoft::Web::Administration::Binding ^>
public sealed class BindingCollection : Microsoft.Web.Administration.ConfigurationElementCollectionBase<Microsoft.Web.Administration.Binding>
type BindingCollection = class
    inherit ConfigurationElementCollectionBase<Binding>
Public NotInheritable Class BindingCollection
Inherits ConfigurationElementCollectionBase(Of Binding)
繼承

範例

下列範例會顯示追蹤接聽程式的每個系結計數。

void ShowBE(Object propertyToConvert) {

    BindingCollection bindingColl = propertyToConvert as BindingCollection;
    int httpsCnt=0;
    int httpCnt=0;
    int unknownCnt=0;

    foreach (Microsoft.Web.Administration.Binding  bindElem in bindingColl) {
        if (bindElem.Protocol.Equals(
            "https", StringComparison.InvariantCultureIgnoreCase) ) {
            httpsCnt++;
        } else if (bindElem.Protocol.Equals(
            "http", StringComparison.InvariantCultureIgnoreCase) ){
           httpCnt++;
        }
        else 
            unknownCnt++;
    }
    Trace.WriteLine("HTTPS Cnt = " + httpsCnt.ToString());
    Trace.WriteLine("HTTP Cnt = " + httpCnt.ToString());
    Trace.WriteLine("Unknown Cnt = " + unknownCnt.ToString());
} 

下列範例會列出伺服器上每個月臺的每個系結。

[ModuleServiceMethod(PassThrough = true)]
public ArrayList GetSiteCollection()
{
    // Use an ArrayList to transfer objects to the client.
    ArrayList arrayOfSitePropertyBags = new ArrayList();

    SiteCollection siteCollection = 
        base.ManagementUnit.ServerManager.Sites;
    Site siteToModify = null;
    string newbindinginformation = String.Empty;
    byte[] newcertificateHash = null;
    string newcertificateStoreName = String.Empty;
    Int32 bindingIndex = -1;
    // Find a binding with an https protocol, if one exists.
    // Capture the site, certificate hash, and the certificate store name.
    foreach (Site site in siteCollection)
    {
        PropertyBag siteBag = new PropertyBag();

        siteBag[TestDemoGlobals.SiteName] = site.Name;
        siteBag[TestDemoGlobals.SiteId] = site.Id;

        ArrayList siteBindingsArray = new ArrayList();
        foreach (Microsoft.Web.Administration.Binding binding in site.Bindings)
        {
            PropertyBag bindingBag = new PropertyBag();

            bindingBag[TestDemoGlobals.BindingInformation] = binding.BindingInformation;
            if (binding.Protocol == "https")
            {
                // Capture certificate information for binding to be created later
                siteToModify = site;
                newcertificateHash = binding.CertificateHash;
                newcertificateStoreName = binding.CertificateStoreName;

                // Add certificate data to binding property bag
                bindingBag[TestDemoGlobals.BindingCertificateHashType] = 
                    binding.CertificateHash.ToString();
                string hashString = String.Empty;
                foreach (System.Byte certhashbyte in binding.CertificateHash)
                {
                    hashString += certhashbyte.ToString() + " ";
                }
                bindingBag[TestDemoGlobals.BindingCertificateHash] = hashString;
                bindingBag[TestDemoGlobals.BindingCertificateHashStoreName] = binding.CertificateStoreName;
            }
            bindingBag[TestDemoGlobals.BindingProtocol] = binding.Protocol;
            bindingBag[TestDemoGlobals.BindingEndPoint] = binding.EndPoint;
            bindingBag[TestDemoGlobals.BindingHost] = binding.Host;
            bindingBag[TestDemoGlobals.BindingIsIPPortHostBinding] = binding.IsIPPortHostBinding;
            bindingBag[TestDemoGlobals.BindingToString] = binding.ToString();
            bindingBag[TestDemoGlobals.BindingUseDsMapper] = binding.UseDsMapper;

            siteBindingsArray.Add(bindingBag);
        }

        siteBag[TestDemoGlobals.BindingsArrayList] = siteBindingsArray;

        arrayOfSitePropertyBags.Add(siteBag);
    }
    // Adding a duplicate binding throws an error.
    if (siteToModify != null)
    {
        newbindinginformation = "*:448:TestingSite";
        try
        {
            // Add this binding. It does not already exist. 
            siteToModify.Bindings.Add(newbindinginformation, newcertificateHash, newcertificateStoreName);
        }
        catch
        {
            // Remove this binding. It already exists.
            foreach (Microsoft.Web.Administration.Binding binding in siteToModify.Bindings)
            {
                if (binding.BindingInformation == newbindinginformation)
                {
                    bindingIndex = siteToModify.Bindings.IndexOf(binding);
                }
            }
            if (bindingIndex != -1)
            {
                siteToModify.Bindings.RemoveAt(bindingIndex);
            }
        }
        // Update information and save in Administration.config file.
        ManagementUnit.Update();
    }
    return arrayOfSitePropertyBags;
}

備註

您可以在 IIS 管理員的 [ 網站 系結] 對話方塊中檢視網站的系結。 若要開啟對話方塊,請以滑鼠右鍵按一下 [ 連線 ] 窗格中的月臺節點,然後按一下 [ 編輯系結]。 [ 網站系結 ] 對話方塊會顯示 Binding 月臺物件中的 BindingCollection 物件。

BindingCollection除非呼叫 方法更新ApplicationHost.config檔案 Microsoft.Web.Management.Server.ManagementUnit.Update ,否則物件變更不會反映在 IIS 管理員中。

屬性

AllowsAdd

取得值,指出專案名稱是否 add 定義在目前的集合架構中。

(繼承來源 ConfigurationElementCollectionBase<T>)
AllowsClear

取得值,指出專案名稱是否 clear 定義在目前的集合架構中。

(繼承來源 ConfigurationElementCollectionBase<T>)
AllowsRemove

取得值,指出專案名稱是否 remove 定義在目前的集合架構中。

(繼承來源 ConfigurationElementCollectionBase<T>)
Attributes

取得組態屬性集合,其中包含這個專案的屬性清單。

(繼承來源 ConfigurationElement)
ChildElements

取得目前專案的所有子專案。

(繼承來源 ConfigurationElement)
Count

取得集合中的項目數目。

(繼承來源 ConfigurationElementCollectionBase<T>)
ElementTagName

表示系結的集合。

(繼承來源 ConfigurationElement)
IsLocallyStored

取得值,指出組態專案是否儲存在特定組態檔中。

(繼承來源 ConfigurationElement)
Item[Int32]

取得位於指定索引處的組態專案。

(繼承來源 ConfigurationElementCollectionBase<T>)
Item[String]

取得或設定具有指定名稱的屬性。

(繼承來源 ConfigurationElement)
Methods

取得組態專案的方法集合。

(繼承來源 ConfigurationElement)
RawAttributes

表示系結的集合。

(繼承來源 ConfigurationElement)
Schema

取得描述組態專案集合的架構。

(繼承來源 ConfigurationElementCollectionBase<T>)

方法

Add(Binding)

將安全系結新增至集合結尾。

Add(String, Byte[], String)

將安全系結加入至系結集合。

Add(String, Byte[], String, SslFlags)

表示系結的集合。

Add(String, String)

將具有指定通訊協定和系結資訊的系結加入至系結集合。

Add(T)

將組態專案加入至目前集合的結尾。

(繼承來源 ConfigurationElementCollectionBase<T>)
AddAt(Int32, T)

將組態專案加入至指定索引處的目前集合。

(繼承來源 ConfigurationElementCollectionBase<T>)
Clear()

清除目前集合中的所有組態專案。

(繼承來源 ConfigurationElementCollectionBase<T>)
CreateElement()

建立目前集合的新子專案。

(繼承來源 ConfigurationElementCollectionBase<T>)
CreateElement(String)

使用指定的名稱建立新的子專案。

(繼承來源 ConfigurationElementCollectionBase<T>)
CreateNewElement(String)

使用指定的專案名稱建立新的專案。

(繼承來源 ConfigurationElementCollectionBase<T>)
Delete()

表示系結的集合。

(繼承來源 ConfigurationElement)
GetAttribute(String)

ConfigurationAttribute傳回 物件,表示要求的屬性。

(繼承來源 ConfigurationElement)
GetAttributeValue(String)

傳回指定之屬性的值。

(繼承來源 ConfigurationElement)
GetChildElement(String)

傳回目前組態專案下且具有指定名稱的子專案。

(繼承來源 ConfigurationElement)
GetChildElement(String, Type)

傳回目前組態專案下且具有指定名稱和類型的子專案。

(繼承來源 ConfigurationElement)
GetCollection()

傳回目前組態專案的預設集合。

(繼承來源 ConfigurationElement)
GetCollection(String)

傳回屬於目前組態專案的所有組態專案。

(繼承來源 ConfigurationElement)
GetCollection(String, Type)

傳回具有指定名稱和型別的組態專案,且位於目前的組態專案底下。

(繼承來源 ConfigurationElement)
GetCollection(Type)

傳回具有指定型別且位於目前組態專案下的組態專案。

(繼承來源 ConfigurationElement)
GetEnumerator()

傳回逐一查看集合的列舉值。

(繼承來源 ConfigurationElementCollectionBase<T>)
GetMetadata(String)

從專案架構傳回中繼資料值。

(繼承來源 ConfigurationElement)
IndexOf(T)

決定集合中專案的索引。

(繼承來源 ConfigurationElementCollectionBase<T>)
Remove(Binding)

從系結集合中移除指定的系結。

Remove(Binding, Boolean)

表示系結的集合。

Remove(T)

從集合中移除第一個出現的專案。

(繼承來源 ConfigurationElementCollectionBase<T>)
RemoveAt(Int32)

移除位於指定索引處的系結。

SetAttributeValue(String, Object)

設定指定屬性的值。

(繼承來源 ConfigurationElement)
SetMetadata(String, Object)

從專案架構設定中繼資料值。

(繼承來源 ConfigurationElement)

明確介面實作

ICollection.CopyTo(Array, Int32)

從特定的陣列索引開始,將集合的項目複製到陣列。

(繼承來源 ConfigurationElementCollectionBase<T>)
ICollection.Count

表示系結的集合。

(繼承來源 ConfigurationElementCollectionBase<T>)
ICollection.IsSynchronized

表示系結的集合。

(繼承來源 ConfigurationElementCollectionBase<T>)
ICollection.SyncRoot

表示系結的集合。

(繼承來源 ConfigurationElementCollectionBase<T>)
IEnumerable.GetEnumerator()

傳回逐一查看集合的列舉值。

(繼承來源 ConfigurationElementCollectionBase<T>)

適用於