ExpressionBuilderCollection 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
表示 ExpressionBuilder 物件的集合。 此類別無法獲得繼承。
public ref class ExpressionBuilderCollection sealed : System::Configuration::ConfigurationElementCollection
[System.Configuration.ConfigurationCollection(typeof(System.Web.Configuration.ExpressionBuilder))]
public sealed class ExpressionBuilderCollection : System.Configuration.ConfigurationElementCollection
[<System.Configuration.ConfigurationCollection(typeof(System.Web.Configuration.ExpressionBuilder))>]
type ExpressionBuilderCollection = class
inherit ConfigurationElementCollection
Public NotInheritable Class ExpressionBuilderCollection
Inherits ConfigurationElementCollection
- 繼承
- 屬性
範例
本節提供兩個程式碼範例。 第一個示範如何宣告方式指定類別數個 ExpressionBuilderCollection 屬性的值。 第二個示範如何使用 類別的成員 ExpressionBuilderCollection 。
下列組態檔範例示範如何宣告方式指定類別數個 ExpressionBuilderCollection 屬性的值。
<system.web>
<compilation>
<expressionBuilders>
<add
expressionPrefix="Resources"
type="System.Web.Compilation.ResourceExpressionBuilder"/>
<add
expressionPrefix="ConnectionStrings"
type="System.Web.Compilation.
ConnectionStringsExpressionBuilder"/>
<add expressionPrefix="AppSettings"
type="System.Web.Compilation.AppSettingsExpressionBuilder" />
</expressionBuilders>
</compilation>
</system.web>
下列程式碼範例示範如何使用 類別的成員 ExpressionBuilderCollection 。
#region Using directives
using System;
using System.Configuration;
using System.Web.Configuration;
#endregion
namespace Samples.Aspnet.SystemWebConfiguration
{
class UsingExpressionBuildCollection
{
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);
// Create a new ExpressionBuilder reference.
ExpressionBuilder myExpressionBuilder =
new ExpressionBuilder("myCustomExpression", "MyCustomExpressionBuilder");
// Add an ExpressionBuilder to the configuration.
configSection.ExpressionBuilders.Add(myExpressionBuilder);
// Add an ExpressionBuilder to the configuration.
ExpressionBuilder myExpressionBuilder2 =
new ExpressionBuilder("myCustomExpression2", "MyCustomExpressionBuilder2");
configSection.ExpressionBuilders.Add(myExpressionBuilder2);
// Display the ExpressionBuilder count.
Console.WriteLine("ExpressionBuilder Count: {0}",
configSection.ExpressionBuilders.Count);
// Display the ExpressionBuildersCollection details.
int i = 1;
int j = 1;
foreach (ExpressionBuilder expressionBuilder in configSection.ExpressionBuilders)
{
Console.WriteLine();
Console.WriteLine("ExpressionBuilder {0} Details:", i);
Console.WriteLine("Type: {0}", expressionBuilder.ElementInformation.Type);
Console.WriteLine("Source: {0}", expressionBuilder.ElementInformation.Source);
Console.WriteLine("LineNumber: {0}", expressionBuilder.ElementInformation.LineNumber);
Console.WriteLine("Properties Count: {0}", expressionBuilder.ElementInformation.Properties.Count);
j = 1;
foreach (PropertyInformation propertyItem in expressionBuilder.ElementInformation.Properties)
{
Console.WriteLine("Property {0} Name: {1}", j, propertyItem.Name);
Console.WriteLine("Property {0} Value: {1}", j, propertyItem.Value);
++j;
}
++i;
}
// Remove an ExpressionBuilder.
configSection.ExpressionBuilders.RemoveAt
(configSection.ExpressionBuilders.Count-1);
// Remove an ExpressionBuilder.
configSection.ExpressionBuilders.Remove("myCustomExpression");
// 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 UsingExpressionBuildCollection
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)
' Create a new ExpressionBuilder reference.
Dim myExpressionBuilder As ExpressionBuilder = _
New ExpressionBuilder("myCustomExpression", "MyCustomExpressionBuilder")
' Add an ExpressionBuilder to the configuration.
configSection.ExpressionBuilders.Add(myExpressionBuilder)
' Add an ExpressionBuilder to the configuration.
Dim myExpressionBuilder2 As ExpressionBuilder = _
New ExpressionBuilder("myCustomExpression2", "MyCustomExpressionBuilder2")
configSection.ExpressionBuilders.Add(myExpressionBuilder2)
' Display the ExpressionBuilder count.
Console.WriteLine("ExpressionBuilder Count: {0}", _
configSection.ExpressionBuilders.Count)
' Display the ExpressionBuildersCollection details.
Dim i = 1
Dim j = 1
For Each expressionBuilder As ExpressionBuilder In configSection.ExpressionBuilders()
Console.WriteLine()
Console.WriteLine("ExpressionBuilder {0} Details:", i)
Console.WriteLine("Type: {0}", expressionBuilder.ElementInformation.Type)
Console.WriteLine("Source: {0}", expressionBuilder.ElementInformation.Source)
Console.WriteLine("LineNumber: {0}", expressionBuilder.ElementInformation.LineNumber)
Console.WriteLine("Properties Count: {0}", expressionBuilder.ElementInformation.Properties.Count)
j = 1
For Each propertyItem As PropertyInformation In expressionBuilder.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 ExpressionBuilder.
configSection.ExpressionBuilders.RemoveAt _
(configSection.ExpressionBuilders.Count - 1)
' Remove an ExpressionBuilder.
configSection.ExpressionBuilders.Remove("myCustomExpression")
' 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
備註
類別 ExpressionBuilderCollection 不會參考基礎組態檔中的任何實際專案。 這是一種建構,可讓您輕鬆存取它所包含的編譯資訊。
建構函式
ExpressionBuilderCollection() |
初始化 ExpressionBuilderCollection 類別的新執行個體。 |
屬性
方法
明確介面實作
ICollection.CopyTo(Array, Int32) |
將 ConfigurationElementCollection 複製至陣列。 (繼承來源 ConfigurationElementCollection) |
擴充方法
Cast<TResult>(IEnumerable) |
將 IEnumerable 的項目轉換成指定的型別。 |
OfType<TResult>(IEnumerable) |
根據指定的型別來篩選 IEnumerable 的項目。 |
AsParallel(IEnumerable) |
啟用查詢的平行化作業。 |
AsQueryable(IEnumerable) |
將 IEnumerable 轉換成 IQueryable。 |