次の方法で共有


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 ファイルが更新されるまで IIS マネージャーには Microsoft.Web.Management.Server.ManagementUnit.Update 反映されません。

プロパティ

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

適用対象