TemplateInstanceAttribute Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Definiert ein Metadatenattribut, mit dem die Anzahl von zulässigen Instanzen einer Vorlage angegeben wird. Diese Klasse kann nicht vererbt werden.
public ref class TemplateInstanceAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public sealed class TemplateInstanceAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Property)>]
type TemplateInstanceAttribute = class
inherit Attribute
Public NotInheritable Class TemplateInstanceAttribute
Inherits Attribute
- Vererbung
- Attribute
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die TemplateInstance Enumeration und die TemplateInstanceAttribute -Klasse verwendet werden. Ein benutzerdefiniertes LoginView Steuerelement namens MyLoginViewA
überschreibt die AnonymousTemplate -Eigenschaft und verwendet die TemplateInstanceAttribute -Klasse, um anzugeben, dass nur eine instance der AnonymousTemplate Eigenschaft erstellt wird.
using System;
using System.Data;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Samples.AspNet.CS.Controls
{
public class MyLoginViewA : LoginView
{
private ITemplate _anonymoustemplate;
[Browsable(false),
DefaultValue(null),
PersistenceMode(PersistenceMode.InnerProperty),
TemplateContainer(typeof(LoginView)),
TemplateInstance(TemplateInstance.Single)
]
public override ITemplate AnonymousTemplate
{
get
{
return _anonymoustemplate;
}
set
{
_anonymoustemplate = value;
}
}
}
}
Imports System.Data
Imports System.ComponentModel
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Namespace Samples.AspNet.VB.Controls
Public Class MyLoginViewA
Inherits LoginView
Private _anonymoustemplate As ITemplate
<Browsable(False), DefaultValue(""), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(GetType(LoginView)), TemplateInstance(TemplateInstance.Single)> _
Public Overrides Property AnonymousTemplate() As System.Web.UI.ITemplate
Get
Return _anonymoustemplate
End Get
Set(ByVal value As System.Web.UI.ITemplate)
_anonymoustemplate = value
End Set
End Property
End Class
End Namespace
Das folgende Codebeispiel ist eine ASPX-Datei, die das MyLoginViewA
-Steuerelement verwendet und veranschaulicht, wie auf Eigenschaften der TemplateInstanceAttribute -Klasse zugegriffen wird.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Reflection" %>
<%@ Register TagPrefix="AspNetSamples" Namespace="Samples.AspNet.CS.Controls" Assembly="Samples.AspNet.CS.Controls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
// <Snippet3>
protected void Page_Load(object sender, EventArgs e)
{
// Get the class type for which to access metadata.
Type clsType = typeof(MyLoginViewA);
// Get the PropertyInfo object for FirstTemplate.
PropertyInfo pInfo = clsType.GetProperty("AnonymousTemplate");
// See if the TemplateInstanceAttribute is defined for this property.
bool isDef = Attribute.IsDefined(pInfo, typeof(TemplateInstanceAttribute));
// Display the result if the attribute exists.
if (isDef)
{
TemplateInstanceAttribute tia =
(TemplateInstanceAttribute)Attribute.GetCustomAttribute(pInfo, typeof(TemplateInstanceAttribute));
Response.Write("The <AnonymousTemplate> has the TemplateInstanceAttribute = " + tia.Instances.ToString() + ".<br />");
if (tia.IsDefaultAttribute())
Response.Write("The TemplateInstanceAttribute used is the same as the default instance.");
else
Response.Write("The TemplateInstanceAttribute used is not the same as the default instance.");
}
}
// </Snippet3>
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TemplateInstance Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<AspNetSamples:MyLoginViewA id="MyLoginViewA1" runat="server">
<AnonymousTemplate>
<asp:Label ID="LoginViewLabel1" runat="server" Text="LoginView Anonymous Template Text"/>
</AnonymousTemplate>
</AspNetSamples:MyLoginViewA>
</div>
</form>
</body>
</html>
<%@ Page Language="VB" %>
<%@ Import Namespace="System.Reflection" %>
<%@ Register TagPrefix="AspNetSamples" Namespace="Samples.AspNet.VB.Controls" Assembly="Samples.AspNet.VB.Controls" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
' <Snippet3>
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
' Get the class type for which to access metadata.
Dim clsType As Type = GetType(MyLoginViewA)
' Get the PropertyInfo object for FirstTemplate.
Dim pInfo As PropertyInfo = clsType.GetProperty("AnonymousTemplate")
' See if the TemplateInstanceAttribute is defined for this property.
Dim isDef As Boolean = Attribute.IsDefined(pInfo, GetType(TemplateContainerAttribute))
' Display the result if the attribute exists.
If isDef Then
Dim tia As TemplateInstanceAttribute = CType(Attribute.GetCustomAttribute(pInfo, GetType(TemplateInstanceAttribute)), TemplateInstanceAttribute)
Response.Write("The <AnonymousTemplate> has the TemplateInstanceAttribute = " & tia.Instances.ToString() & ".<br />")
If (tia.IsDefaultAttribute()) Then
Response.Write("The TemplateInstanceAttribute used is the same as the default instance.")
Else
Response.Write("The TemplateInstanceAttribute used is not the same as the default instance.")
End If
End If
End Sub
' </Snippet3>
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>TemplateInstance Example</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<AspNetSamples:MyLoginViewA id="MyLoginViewA1" runat="server">
<AnonymousTemplate>
<asp:Label ID="LoginViewLabel1" runat="server" Text="LoginView Anonymous Template Text"/>
</AnonymousTemplate>
</AspNetSamples:MyLoginViewA>
</div>
</form>
</body>
</html>
Hinweise
Mit TemplateInstanceAttribute der -Klasse können Sie eine Vorlageneigenschaft als eine Eigenschaft markieren, die einzelne oder mehrere Instanziierungen zulässt. Bei einer Vorlage, die nur eine einzelne Instanziierung zulässt, kann auf die darin enthaltenen Steuerelemente verwiesen werden. Die ZoneTemplate -Eigenschaft ist ein Beispiel für eine Eigenschaft, die nur einmal instanziiert werden kann.
Diese TemplateInstanceAttribute Klasse ist optional. Wenn eine Vorlageneigenschaft nicht um eine TemplateInstanceAttribute Klasse erweitert wird, wird der Standardwert, das Multiple Feld, verwendet. Weitere Informationen zur Verwendung von Attributen finden Sie unter Attribute.
Konstruktoren
TemplateInstanceAttribute(TemplateInstance) |
Initialisiert eine neue Instanz der TemplateInstanceAttribute-Klasse mit dem angegebenen TemplateInstance-Enumerationswert. |
Felder
Default |
Definiert den Standardwert für die TemplateInstanceAttribute-Klasse. Dieses Feld ist schreibgeschützt. |
Multiple |
Erstellt eine Instanz der TemplateInstanceAttribute-Klasse. Diese stellt eine Vorlage dar, die mehrmals instanziiert wird. Dieses Feld ist schreibgeschützt. |
Single |
Erstellt eine Instanz der TemplateInstanceAttribute-Klasse. Diese stellt eine Vorlage dar, die einmal instanziiert wird. Dieses Feld ist schreibgeschützt. |
Eigenschaften
Instances |
Ruft den TemplateInstance-Enumerationswert ab, den die aktuelle Vorlageninstanz darstellt. |
TypeId |
Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab. (Geerbt von Attribute) |
Methoden
Equals(Object) |
Gibt an, ob das angegebene Objekt ein TemplateInstanceAttribute-Objekt ist und mit diesem TemplateInstanceAttribute-Objekt identisch ist. |
GetHashCode() |
Ruft einen Hashcode für dieses TemplateInstanceAttribute-Objekt ab. |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IsDefaultAttribute() |
Gibt einen Wert zurück, der angibt, ob das aktuelle TemplateInstanceAttribute-Objekt mit dem standardmäßigen TemplateInstanceAttribute-Objekt identisch ist. |
Match(Object) |
Beim Überschreiben in einer abgeleiteten Klasse wird ein Wert zurückgegeben, der angibt, ob diese Instanz einem bestimmten Objekt entspricht. (Geerbt von Attribute) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu. (Geerbt von Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können. (Geerbt von Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1). (Geerbt von Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit. (Geerbt von Attribute) |