TemplateInstanceAttribute Classe

Definizione

Definisce un attributo di metadati utilizzato per specificare il numero di istanze consentite di un modello. La classe non può essere ereditata.

[System.AttributeUsage(System.AttributeTargets.Property)]
public sealed class TemplateInstanceAttribute : Attribute
Ereditarietà
TemplateInstanceAttribute
Attributi

Esempio

Nell'esempio di codice seguente viene illustrato come usare l'enumerazione TemplateInstance e la TemplateInstanceAttribute classe . Un controllo personalizzato LoginView denominato MyLoginViewA esegue l'override della AnonymousTemplate proprietà e usa la TemplateInstanceAttribute classe per specificare che viene creata una sola istanza della AnonymousTemplate proprietà.

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;
            }
        }
    }
}

L'esempio di codice seguente è un file ASPX che usa il MyLoginViewA controllo e illustra come accedere alle proprietà della TemplateInstanceAttribute classe .

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

Commenti

La TemplateInstanceAttribute classe consente di contrassegnare una proprietà modello come una proprietà che consente di creare istanze singole o multiple. Un modello che consente solo una singola creazione di un'istanza può avere i controlli contenuti all'interno di esso a cui si fa riferimento. La ZoneTemplate proprietà è un esempio di una proprietà di cui è possibile creare un'istanza una sola volta.

Questa TemplateInstanceAttribute classe è facoltativa. Se una proprietà del modello non viene estesa con una TemplateInstanceAttribute classe, viene utilizzato il valore predefinito, il Multiple campo . Per altre informazioni sull'uso degli attributi, vedere Attributi.

Costruttori

TemplateInstanceAttribute(TemplateInstance)

Inizializza una nuova istanza della classe TemplateInstanceAttribute con il valore di enumerazione TemplateInstance specificato.

Campi

Default

Definisce il valore predefinito per la classe TemplateInstanceAttribute. Questo campo è di sola lettura.

Multiple

Crea un'istanza della classe TemplateInstanceAttribute che rappresenta un modello di cui verranno create più istanze. Questo campo è di sola lettura.

Single

Crea un'istanza della classe TemplateInstanceAttribute che rappresenta un modello di cui verrà creata una sola istanza. Questo campo è di sola lettura.

Proprietà

Instances

Ottiene il valore dell'enumerazione TemplateInstance rappresentato dall'istanza del modello corrente.

TypeId

Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute.

(Ereditato da Attribute)

Metodi

Equals(Object)

Indica se l'oggetto specificato è un oggetto TemplateInstanceAttribute ed è identico a questo oggetto TemplateInstanceAttribute.

GetHashCode()

Ottiene un codice hash per questo oggetto TemplateInstanceAttribute.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
IsDefaultAttribute()

Restituisce un valore che indica se l'oggetto TemplateInstanceAttribute corrente è identico all'oggetto TemplateInstanceAttribute predefinito.

Match(Object)

Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato.

(Ereditato da Attribute)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

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

Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch.

(Ereditato da Attribute)
_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.

(Ereditato da Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1).

(Ereditato da Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornisce l'accesso a proprietà e metodi esposti da un oggetto.

(Ereditato da Attribute)

Si applica a

Prodotto Versioni
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

Vedi anche