BuildProviderCollection 類別

定義

表示 BuildProvider 物件的集合。 此類別無法獲得繼承。

public ref class BuildProviderCollection sealed : System::Configuration::ConfigurationElementCollection
[System.Configuration.ConfigurationCollection(typeof(System.Web.Configuration.BuildProvider))]
public sealed class BuildProviderCollection : System.Configuration.ConfigurationElementCollection
[<System.Configuration.ConfigurationCollection(typeof(System.Web.Configuration.BuildProvider))>]
type BuildProviderCollection = class
    inherit ConfigurationElementCollection
Public NotInheritable Class BuildProviderCollection
Inherits ConfigurationElementCollection
繼承
屬性

範例

本節提供兩個程式碼範例。 第一個示範如何以宣告方式指定類別數個 BuildProviderCollection 屬性的值。 第二個示範如何使用 類別的成員 BuildProviderCollection

下列組態檔範例示範如何以宣告方式指定類別數個 BuildProviderCollection 屬性的值。

<system.web>  
  <compilation>   
    <buildProviders>  
      <add extension=".aspx"   
        type="System.Web.Compilation.PageBuildProvider"  
         />  
      <add extension=".ascx"   
        type="System.Web.Compilation.UserControlBuildProvider"  
         />  
      <add extension=".master"   
        type="System.Web.Compilation.MasterPageBuildProvider"  
         />  
      <add extension=".asix"   
        type="System.Web.Compilation.ImageGeneratorBuildProvider"  
         />  
      <add extension=".asmx"   
        type="System.Web.Compilation.WebServiceBuildProvider"  
         />  
      <add extension=".ashx"   
        type="System.Web.Compilation.WebHandlerBuildProvider"  
         />  
      <add extension=".soap"   
        type="System.Web.Compilation.WebServiceBuildProvider"  
         />  
      <add extension=".resx"   
        type="System.Web.Compilation.ResXBuildProvider"  
        appliesTo="Resources" />  
      <add extension=".resources"   
        type="System.Web.Compilation.ResourcesBuildProvider"  
        appliesTo="Code, Resources" />  
      <add extension=".wsdl"   
        type="System.Web.Compilation.WsdlBuildProvider"  
        appliesTo="Code" />  
      <add extension=".xsd"   
        type="System.Web.Compilation.XsdBuildProvider"  
        appliesTo="Code" />  
    </buildProviders>  
  </compilation>  
</system.web>  

下列程式碼範例示範如何使用 類別的成員 BuildProviderCollection

#region Using directives

using System;
using System.Configuration;
using System.Web.Configuration;

#endregion

namespace Samples.Aspnet.SystemWebConfiguration
{
  class UsingBuildProviderCollection
  {
    static void Main(string[] args)
    {
      try
      {
        // Set the path of the config file.
        string configPath = "";

        // Get the Web application configuration object.
        Configuration config =
          WebConfigurationManager.OpenWebConfiguration(configPath);

        // Get the section related object.
        CompilationSection configSection =
          (CompilationSection)config.GetSection
          ("system.web/compilation");

        // Display title and info.
        Console.WriteLine("ASP.NET Configuration Info");
        Console.WriteLine();

        // Display Config details.
        Console.WriteLine("File Path: {0}",
          config.FilePath);
        Console.WriteLine("Section Path: {0}",
          configSection.SectionInformation.Name);

        // Display BuildProviderCollection count.
        Console.WriteLine("BuildProviderCollection count: {0}",
          configSection.BuildProviders.Count);

        // Create a new BuildProvider.
        BuildProvider myBuildProvider =
          new BuildProvider(".myres",
          "System.Web.Compilation.ResourcesBuildProvider");

        // Add an BuildProvider to the collection.
        configSection.BuildProviders.Add(myBuildProvider);

        // Create a second BuildProvider.
        BuildProvider myBuildProvider2 =
          new BuildProvider(".myres2",
          "System.Web.Compilation.ResourcesBuildProvider");

        // Add an BuildProvider to the collection.
        configSection.BuildProviders.Add(myBuildProvider2);

        // BuildProvider Collection
        int i = 1;
        int j = 1;
        foreach (BuildProvider BuildProviderItem in
          configSection.BuildProviders)
        {
          Console.WriteLine();
          Console.WriteLine("BuildProviders {0} Details:", i);
          Console.WriteLine("Type: {0}",
            BuildProviderItem.ElementInformation.Type);
          Console.WriteLine("Source: {0}",
            BuildProviderItem.ElementInformation.Source);
          Console.WriteLine("LineNumber: {0}",
            BuildProviderItem.ElementInformation.LineNumber);
          Console.WriteLine("Properties Count: {0}",
            BuildProviderItem.ElementInformation.Properties.Count);
          j = 1;
          foreach (PropertyInformation propertyItem in
            BuildProviderItem.ElementInformation.Properties)
          {
            Console.WriteLine("Property {0} Name: {1}", j,
              propertyItem.Name);
            Console.WriteLine("Property {0} Value: {1}", j,
              propertyItem.Value);
            j++;
          }
          i++;
        }

        // Remove a BuildProvider.
        configSection.BuildProviders.Remove(".myres2");

        // Remove an BuildProvider.
        configSection.BuildProviders.RemoveAt(
          configSection.BuildProviders.Count - 1);

        // Update if not locked.
        if (!configSection.SectionInformation.IsLocked)
        {
          config.Save();
          Console.WriteLine("** Configuration updated.");
        }
        else
        {
          Console.WriteLine("** Could not update, section is locked.");
        }
      }

      catch (Exception e)
      {
        // Unknown error.
        Console.WriteLine(e.ToString());
      }

      // Display and wait.
      Console.ReadLine();
    }
  }
}
Imports System.Configuration
Imports System.Web.Configuration

Namespace Samples.Aspnet.SystemWebConfiguration
  Class UsingBuildProviderCollection
    Public Shared Sub Main()
      Try
        ' Set the path of the config file.
        Dim configPath As String = ""

        ' Get the Web application configuration object.
        Dim config As System.Configuration.Configuration = _
         WebConfigurationManager.OpenWebConfiguration(configPath)

        ' Get the section related object.
        Dim configSection As _
         System.Web.Configuration.CompilationSection = _
         CType(config.GetSection("system.web/compilation"), _
         System.Web.Configuration.CompilationSection)

        ' Display title and info.
        Console.WriteLine("ASP.NET Configuration Info")
        Console.WriteLine()

        ' Display Config details.
        Console.WriteLine("File Path: {0}", _
         config.FilePath)
        Console.WriteLine("Section Path: {0}", _
         configSection.SectionInformation.Name)

        ' Display BuildProviderCollection count.
        Console.WriteLine("BuildProviderCollection count: {0}", _
          configSection.BuildProviders.Count)

        ' Create a new BuildProvider.
        Dim myBuildProvider As BuildProvider = _
          New BuildProvider(".myres", _
          "System.Web.Compilation.ResourcesBuildProvider")

        ' Add an BuildProvider to the collection.
        configSection.BuildProviders.Add(myBuildProvider)

        ' Create a second BuildProvider.
        Dim myBuildProvider2 As BuildProvider = _
          New BuildProvider(".myres2", _
          "System.Web.Compilation.ResourcesBuildProvider")

        ' Add an BuildProvider to the collection.
        configSection.BuildProviders.Add(myBuildProvider2)

        ' BuildProvider Collection
        Dim i = 1
        Dim j = 1
        For Each BuildProviderItem As _
          BuildProvider In configSection.BuildProviders
          Console.WriteLine()
          Console.WriteLine("BuildProvider {0} Details:", i)
          Console.WriteLine("Type: {0}", _
            BuildProviderItem.ElementInformation.Type)
          Console.WriteLine("Source: {0}", _
            BuildProviderItem.ElementInformation.Source)
          Console.WriteLine("LineNumber: {0}", _
            BuildProviderItem.ElementInformation.LineNumber)
          Console.WriteLine("Properties Count: {0}", _
            BuildProviderItem.ElementInformation.Properties.Count)
          j = 1
          For Each propertyItem As PropertyInformation In _
            BuildProviderItem.ElementInformation.Properties
            Console.WriteLine("Property {0} Name: {1}", j, _
              propertyItem.Name)
            Console.WriteLine("Property {0} Value: {1}", j, _
              propertyItem.Value)
            j = j + 1
          Next
          i = i + 1
        Next

        ' Remove an BuildProvider.
        configSection.BuildProviders.Remove(".myres2")

        ' Remove an BuildProvider.
        configSection.BuildProviders.RemoveAt( _
          configSection.BuildProviders.Count - 1)

        ' Update if not locked.
        If Not configSection.SectionInformation.IsLocked Then
          config.Save()
          Console.WriteLine("** Configuration updated.")
        Else
          Console.WriteLine("** Could not update, section is locked.")
        End If

      Catch e As Exception
        ' Unknown error.
        Console.WriteLine(e.ToString())
      End Try

      ' Display and wait
      Console.ReadLine()
    End Sub
  End Class
End Namespace

備註

BuildProviderCollection用來編譯自訂資源檔。 組建提供者的數量不限。 BuildProviderCollection不會參考基礎組態檔中的任何實際專案。 這是一種建構,可讓您輕鬆存取它所包含的編譯資訊。

建構函式

BuildProviderCollection()

初始化 BuildProviderCollection 類別的新執行個體。

屬性

AddElementName

取得或設定 ConfigurationElement 的名稱,以在衍生類別中覆寫時,與 ConfigurationElementCollection 中的加入作業相關聯。

(繼承來源 ConfigurationElementCollection)
ClearElementName

取得或設定 ConfigurationElement 的名稱,以在衍生類別中覆寫時,與 ConfigurationElementCollection 中的清除作業相關聯。

(繼承來源 ConfigurationElementCollection)
CollectionType

取得 ConfigurationElementCollection 的類型。

(繼承來源 ConfigurationElementCollection)
Count

取得集合中的項目數。

(繼承來源 ConfigurationElementCollection)
CurrentConfiguration

取得最上層 Configuration 執行個體的參考,這個執行個體表示目前 ConfigurationElement 執行個體所屬的組態階層架構。

(繼承來源 ConfigurationElement)
ElementInformation

取得 ElementInformation 物件,其中包含 ConfigurationElement 物件之不可自訂的資訊和功能。

(繼承來源 ConfigurationElement)
ElementName

在衍生類別中覆寫時,取得用於識別組態檔中這個項目集合的名稱。

(繼承來源 ConfigurationElementCollection)
ElementProperty

取得表示 ConfigurationElementProperty 物件本身的 ConfigurationElement 物件。

(繼承來源 ConfigurationElement)
EmitClear

取得或設定值,這個值指定是否已經清除集合。

(繼承來源 ConfigurationElementCollection)
EvaluationContext

取得 ConfigurationElement 物件的 ContextInformation 物件。

(繼承來源 ConfigurationElement)
HasContext

取得值,指出 CurrentConfiguration 屬性是否為 null

(繼承來源 ConfigurationElement)
IsSynchronized

取得值,指出是否同步存取集合。

(繼承來源 ConfigurationElementCollection)
Item[ConfigurationProperty]

取得或設定此組態項目的屬性 (Property) 或屬性 (Attribute)。

(繼承來源 ConfigurationElement)
Item[Int32]

取得集合中位於指定索引的 BuildProvider 物件。

Item[String]

依據指定的名稱,取得 BuildProvider 集合項目。

LockAllAttributesExcept

取得已鎖定屬性的集合。

(繼承來源 ConfigurationElement)
LockAllElementsExcept

取得已鎖定項目的集合。

(繼承來源 ConfigurationElement)
LockAttributes

取得已鎖定屬性的集合。

(繼承來源 ConfigurationElement)
LockElements

取得已鎖定項目的集合。

(繼承來源 ConfigurationElement)
LockItem

取得或設定值,指出此項目是否已被鎖定。

(繼承來源 ConfigurationElement)
Properties

取得屬性的集合。

(繼承來源 ConfigurationElement)
RemoveElementName

取得或設定 ConfigurationElement 的名稱,以在衍生類別中覆寫時,與 ConfigurationElementCollection 中的移除作業相關聯。

(繼承來源 ConfigurationElementCollection)
SyncRoot

取得用於同步存取 ConfigurationElementCollection 的物件。

(繼承來源 ConfigurationElementCollection)
ThrowOnDuplicate

取得值,這個值表示嘗試將重複的 ConfigurationElement 新增至 ConfigurationElementCollection 是否會導致擲回例外狀況。

(繼承來源 ConfigurationElementCollection)

方法

Add(BuildProvider)

BuildProvider 物件加入至 BuildProviderCollection

BaseAdd(ConfigurationElement)

將組態項目新增至 ConfigurationElementCollection

(繼承來源 ConfigurationElementCollection)
BaseAdd(ConfigurationElement, Boolean)

將組態項目加入組態項目集合。

(繼承來源 ConfigurationElementCollection)
BaseAdd(Int32, ConfigurationElement)

將組態項目加入組態項目集合。

(繼承來源 ConfigurationElementCollection)
BaseClear()

從集合移除所有組態項目物件。

(繼承來源 ConfigurationElementCollection)
BaseGet(Int32)

取得位在指定之索引位置的組態項目。

(繼承來源 ConfigurationElementCollection)
BaseGet(Object)

傳回具有指定索引鍵的組態項目。

(繼承來源 ConfigurationElementCollection)
BaseGetAllKeys()

傳回包含在 ConfigurationElementCollection 中所有組態項目的索引鍵陣列。

(繼承來源 ConfigurationElementCollection)
BaseGetKey(Int32)

取得在指定之索引位置的 ConfigurationElement 索引鍵。

(繼承來源 ConfigurationElementCollection)
BaseIndexOf(ConfigurationElement)

表示所指定 ConfigurationElement 的索引。

(繼承來源 ConfigurationElementCollection)
BaseIsRemoved(Object)

指出是否已從 ConfigurationElement 移除具有指定索引鍵的 ConfigurationElementCollection

(繼承來源 ConfigurationElementCollection)
BaseRemove(Object)

從集合移除 ConfigurationElement

(繼承來源 ConfigurationElementCollection)
BaseRemoveAt(Int32)

移除在指定之索引位置的 ConfigurationElement

(繼承來源 ConfigurationElementCollection)
Clear()

將所有的 BuildProvider 物件從 BuildProviderCollection 中清除。

CopyTo(ConfigurationElement[], Int32)

複製 ConfigurationElementCollection 的內容至陣列。

(繼承來源 ConfigurationElementCollection)
CreateNewElement()

在衍生類別中覆寫時,建立新的 ConfigurationElement

(繼承來源 ConfigurationElementCollection)
CreateNewElement(String)

在衍生類別中覆寫時,建立新的 ConfigurationElement

(繼承來源 ConfigurationElementCollection)
DeserializeElement(XmlReader, Boolean)

從組態檔讀取 XML。

(繼承來源 ConfigurationElement)
Equals(Object)

ConfigurationElementCollection 與指定的物件相比較。

(繼承來源 ConfigurationElementCollection)
GetElementKey(ConfigurationElement)

在衍生類別中覆寫時,取得指定組態項目的項目索引鍵。

(繼承來源 ConfigurationElementCollection)
GetEnumerator()

取得 IEnumerator,其用於逐一查看 ConfigurationElementCollection

(繼承來源 ConfigurationElementCollection)
GetHashCode()

取得表示 ConfigurationElementCollection 執行個體的唯一值。

(繼承來源 ConfigurationElementCollection)
GetTransformedAssemblyString(String)

傳回指定之組件名稱的轉換版本。

(繼承來源 ConfigurationElement)
GetTransformedTypeString(String)

傳回指定之型別名稱的轉換版本。

(繼承來源 ConfigurationElement)
GetType()

取得目前執行個體的 Type

(繼承來源 Object)
Init()

ConfigurationElement 物件設定為它的初始狀態。

(繼承來源 ConfigurationElement)
InitializeDefault()

用來初始化 ConfigurationElement 物件的預設值集。

(繼承來源 ConfigurationElement)
IsElementName(String)

指出指定的 ConfigurationElement 是否存在於 ConfigurationElementCollection 中。

(繼承來源 ConfigurationElementCollection)
IsElementRemovable(ConfigurationElement)

指出指定的 ConfigurationElement 是否可從 ConfigurationElementCollection 移除。

(繼承來源 ConfigurationElementCollection)
IsModified()

在衍生類別中覆寫時,指出這個 ConfigurationElementCollection 自上次儲存或載入後是否已修改。

(繼承來源 ConfigurationElementCollection)
IsReadOnly()

指出 ConfigurationElementCollection 物件是否為唯讀。

(繼承來源 ConfigurationElementCollection)
ListErrors(IList)

將這個 ConfigurationElement 物件中和所有子項目中的無效屬性錯誤加入傳遞的清單。

(繼承來源 ConfigurationElement)
MemberwiseClone()

建立目前 Object 的淺層複製。

(繼承來源 Object)
OnDeserializeUnrecognizedAttribute(String, String)

取得值,指出在還原序列化程序中是否遇到未知的屬性 (Attribute)。

(繼承來源 ConfigurationElement)
OnDeserializeUnrecognizedElement(String, XmlReader)

導致組態系統擲回例外狀況。

(繼承來源 ConfigurationElementCollection)
OnRequiredPropertyNotFound(String)

在找不到必要的屬性時擲回例外狀況 (Exception)。

(繼承來源 ConfigurationElement)
PostDeserialize()

還原序列化之後呼叫。

(繼承來源 ConfigurationElement)
PreSerialize(XmlWriter)

序列化之前呼叫。

(繼承來源 ConfigurationElement)
Remove(String)

BuildProvider 移除 BuildProviderCollection 物件。

RemoveAt(Int32)

BuildProvider 中移除指定索引處的 BuildProviderCollection 物件。

Reset(ConfigurationElement)

在衍生類別中覆寫時,將 ConfigurationElementCollection 重設為其未修改的狀態。

(繼承來源 ConfigurationElementCollection)
ResetModified()

在衍生類別中覆寫時,將 IsModified() 屬性的值重設為 false

(繼承來源 ConfigurationElementCollection)
SerializeElement(XmlWriter, Boolean)

在衍生類別中覆寫時,將組態資料寫入組態檔的 XML 項目中。

(繼承來源 ConfigurationElementCollection)
SerializeToXmlElement(XmlWriter, String)

在衍生類別中實作時,將此組態項目的外部標記寫入組態檔中。

(繼承來源 ConfigurationElement)
SetPropertyValue(ConfigurationProperty, Object, Boolean)

將屬性設定為指定的值。

(繼承來源 ConfigurationElement)
SetReadOnly()

設定 IsReadOnly() 物件和所有子項目的 ConfigurationElementCollection 屬性。

(繼承來源 ConfigurationElementCollection)
ToString()

傳回代表目前物件的字串。

(繼承來源 Object)
Unmerge(ConfigurationElement, ConfigurationElement, ConfigurationSaveMode)

回復從組態階層架構的不同層級合併組態資訊所造成的影響。

(繼承來源 ConfigurationElementCollection)

明確介面實作

ICollection.CopyTo(Array, Int32)

ConfigurationElementCollection 複製至陣列。

(繼承來源 ConfigurationElementCollection)

擴充方法

Cast<TResult>(IEnumerable)

IEnumerable 的項目轉換成指定的型別。

OfType<TResult>(IEnumerable)

根據指定的型別來篩選 IEnumerable 的項目。

AsParallel(IEnumerable)

啟用查詢的平行化作業。

AsQueryable(IEnumerable)

IEnumerable 轉換成 IQueryable

適用於

另請參閱