BindingCollection クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
バインドのコレクションを表します。
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 |
現在のコレクション スキーマで要素名が定義されているかどうかを |
AllowsClear |
現在のコレクション スキーマで要素名が |
AllowsRemove |
現在のコレクション スキーマで要素名が |
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>) |
メソッド
明示的なインターフェイスの実装
ICollection.CopyTo(Array, Int32) |
特定の配列インデックスを開始位置として、配列にコレクションの要素をコピーします。 (継承元 ConfigurationElementCollectionBase<T>) |
ICollection.Count |
バインドのコレクションを表します。 (継承元 ConfigurationElementCollectionBase<T>) |
ICollection.IsSynchronized |
バインドのコレクションを表します。 (継承元 ConfigurationElementCollectionBase<T>) |
ICollection.SyncRoot |
バインドのコレクションを表します。 (継承元 ConfigurationElementCollectionBase<T>) |
IEnumerable.GetEnumerator() |
コレクションを反復処理する列挙子を返します。 (継承元 ConfigurationElementCollectionBase<T>) |