TemplateInstanceAttribute TemplateInstanceAttribute TemplateInstanceAttribute TemplateInstanceAttribute Class

Definizione

Definisce un attributo di metadati utilizzato per specificare il numero di istanze consentite di un modello.Defines a metadata attribute that is used to specify the number of allowed instances of a template. Questa classe non può essere ereditata.This class cannot be inherited.

public ref class TemplateInstanceAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Property)]
public sealed class TemplateInstanceAttribute : Attribute
type TemplateInstanceAttribute = class
    inherit Attribute
Public NotInheritable Class TemplateInstanceAttribute
Inherits Attribute
Ereditarietà
TemplateInstanceAttributeTemplateInstanceAttributeTemplateInstanceAttributeTemplateInstanceAttribute
Attributi

Esempi

Nell'esempio di codice riportato di seguito viene illustrato TemplateInstance come utilizzare l' TemplateInstanceAttribute enumerazione e la classe.The following code example demonstrates how to use the TemplateInstance enumeration and the TemplateInstanceAttribute class. Un controllo LoginView personalizzato denominato MyLoginViewA esegue l' AnonymousTemplate override della proprietà e TemplateInstanceAttribute usa la classe per specificare che viene creata una AnonymousTemplate sola istanza della proprietà.A custom LoginView control named MyLoginViewA overrides the AnonymousTemplate property and uses the TemplateInstanceAttribute class to specify that only one instance of the AnonymousTemplate property is created.

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

L'esempio di codice seguente è un file aspx che usa MyLoginViewA il controllo e Mostra come accedere alle proprietà TemplateInstanceAttribute della classe.The following code example is an ASPX file that uses the MyLoginViewA control and demonstrates how to access properties of the TemplateInstanceAttribute class.

<%@ 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>

Commenti

La TemplateInstanceAttribute classe consente di contrassegnare una proprietà del modello come unica che consente di creare istanze singole o multiple.The TemplateInstanceAttribute class allows you to mark a template property as one that allows single or multiple instantiations. Un modello che consente solo un'istanza singola può disporre dei controlli contenuti all'interno di esso.A template that only allows a single instantiation can have the controls that are contained inside of it referenced. La ZoneTemplate proprietà è un esempio di una proprietà di cui è possibile creare un'istanza solo una volta.The ZoneTemplate property is an example of a property that can be instantiated only one time.

Questa TemplateInstanceAttribute classe è facoltativa.This TemplateInstanceAttribute class is optional. Se una proprietà del modello non viene estesa con TemplateInstanceAttribute una classe, viene usato il valore Multiple predefinito, ovvero il campo.If a template property is not extended with a TemplateInstanceAttribute class, the default value, the Multiple field, is used. Per ulteriori informazioni sull'utilizzo degli attributi, vedere attributi.For more information about using attributes, see Attributes.

Costruttori

TemplateInstanceAttribute(TemplateInstance) TemplateInstanceAttribute(TemplateInstance) TemplateInstanceAttribute(TemplateInstance) TemplateInstanceAttribute(TemplateInstance)

Inizializza una nuova istanza della classe TemplateInstanceAttribute con il valore di enumerazione TemplateInstance specificato.Initializes a new instance of the TemplateInstanceAttribute class with the specified TemplateInstance enumeration value.

Campi

Default Default Default Default

Definisce il valore predefinito per la classe TemplateInstanceAttribute.Defines the default value for the TemplateInstanceAttribute class. Questo campo è di sola lettura.This field is read-only.

Multiple Multiple Multiple Multiple

Crea un'istanza della classe TemplateInstanceAttribute che rappresenta un modello di cui verranno create più istanze.Creates an instance of the TemplateInstanceAttribute class as one representing a template that will be instantiated multiple times. Questo campo è di sola lettura.This field is read-only.

Single Single Single Single

Crea un'istanza della classe TemplateInstanceAttribute che rappresenta un modello di cui verrà creata una sola istanza.Creates an instance of the TemplateInstanceAttribute class as one representing a template that will be instantiated a single time. Questo campo è di sola lettura.This field is read-only.

Proprietà

Instances Instances Instances Instances

Ottiene il valore dell'enumerazione TemplateInstance rappresentato dall'istanza del modello corrente.Gets the TemplateInstance enumeration value that the current template instance represents.

TypeId TypeId TypeId TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Metodi

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Indica se l'oggetto specificato è un oggetto TemplateInstanceAttribute ed è identico a questo oggetto TemplateInstanceAttribute.Indicates whether the specified object is a TemplateInstanceAttribute object and is identical to the this TemplateInstanceAttribute object.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Ottiene un codice hash per questo oggetto TemplateInstanceAttribute.Gets a hash code for this TemplateInstanceAttribute object.

GetType() GetType() GetType() GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Inherited from Object)
IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute() IsDefaultAttribute()

Restituisce un valore che indica se l'oggetto TemplateInstanceAttribute corrente è identico all'oggetto TemplateInstanceAttribute predefinito.Returns a value indicating if the current TemplateInstanceAttribute object is the same as the default TemplateInstanceAttribute object.

Match(Object) Match(Object) Match(Object) Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Inherited from Attribute)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Inherited from Object)

Implementazioni dell'interfaccia esplicita

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.Maps a set of names to a corresponding set of dispatch identifiers.

(Inherited from Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Inherited from Attribute)
_Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32) _Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Inherited from Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Si applica a

Vedi anche