TemplateInstanceAttribute TemplateInstanceAttribute TemplateInstanceAttribute TemplateInstanceAttribute Class

Definición

Define un atributo de metadatos utilizado para especificar el número de instancias permitidas de una plantilla.Defines a metadata attribute that is used to specify the number of allowed instances of a template. Esta clase no puede heredarse.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
Herencia
TemplateInstanceAttributeTemplateInstanceAttributeTemplateInstanceAttributeTemplateInstanceAttribute
Atributos

Ejemplos

En el ejemplo de código siguiente se muestra cómo TemplateInstance usar la enumeración y la TemplateInstanceAttribute clase.The following code example demonstrates how to use the TemplateInstance enumeration and the TemplateInstanceAttribute class. Un control LoginView personalizado denominado MyLoginViewA invalida la AnonymousTemplate propiedad y utiliza la TemplateInstanceAttribute clase para especificar que solo se crea una instancia de la AnonymousTemplate propiedad.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 Microsoft.VisualBasic
Imports System
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

El ejemplo de código siguiente es un archivo aspx que utiliza MyLoginViewA el control y muestra cómo obtener acceso a las TemplateInstanceAttribute propiedades de la clase.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>

Comentarios

La TemplateInstanceAttribute clase permite marcar una propiedad de plantilla como una que permite la creación de instancias únicas o múltiples.The TemplateInstanceAttribute class allows you to mark a template property as one that allows single or multiple instantiations. Una plantilla que solo permite una única creación de instancias puede tener los controles que se encuentran dentro de él a los que se hace referencia.A template that only allows a single instantiation can have the controls that are contained inside of it referenced. La ZoneTemplate propiedad es un ejemplo de una propiedad de la que se pueden crear instancias solo una vez.The ZoneTemplate property is an example of a property that can be instantiated only one time.

Esta TemplateInstanceAttribute clase es opcional.This TemplateInstanceAttribute class is optional. Si una propiedad de plantilla no se extiende con TemplateInstanceAttribute una clase, se utiliza el valor Multiple predeterminado, el campo.If a template property is not extended with a TemplateInstanceAttribute class, the default value, the Multiple field, is used. Para obtener más información sobre el uso de atributos, vea atributos.For more information about using attributes, see Attributes.

Constructores

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

Inicializa una nueva instancia de la clase TemplateInstanceAttribute con el valor de enumeración TemplateInstance especificado.Initializes a new instance of the TemplateInstanceAttribute class with the specified TemplateInstance enumeration value.

Campos

Default Default Default Default

Define el valor predeterminado de la clase TemplateInstanceAttribute.Defines the default value for the TemplateInstanceAttribute class. Este campo es de solo lectura.This field is read-only.

Multiple Multiple Multiple Multiple

Crea una instancia de la clase TemplateInstanceAttribute que representa una plantilla de la que se crearán instancias varias veces.Creates an instance of the TemplateInstanceAttribute class as one representing a template that will be instantiated multiple times. Este campo es de solo lectura.This field is read-only.

Single Single Single Single

Crea una instancia de la clase TemplateInstanceAttribute que representa una plantilla de la que creará una instancia una única vez.Creates an instance of the TemplateInstanceAttribute class as one representing a template that will be instantiated a single time. Este campo es de solo lectura.This field is read-only.

Propiedades

Instances Instances Instances Instances

Obtiene el valor de enumeración TemplateInstance que representa la instancia de la plantilla actual.Gets the TemplateInstance enumeration value that the current template instance represents.

TypeId TypeId TypeId TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Inherited from Attribute)

Métodos

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

Indica si el objeto especificado es un objeto TemplateInstanceAttribute y si es idéntico a este objeto TemplateInstanceAttribute.Indicates whether the specified object is a TemplateInstanceAttribute object and is identical to the this TemplateInstanceAttribute object.

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

Obtiene un código hash para este objeto TemplateInstanceAttribute.Gets a hash code for this TemplateInstanceAttribute object.

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

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

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

Devuelve un valor que indica si el objeto TemplateInstanceAttribute actual es el mismo que el objeto TemplateInstanceAttribute predeterminado.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)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.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 superficial del objeto Object actual.Creates a shallow copy of the current Object.

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

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Inherited from Object)

Implementaciones de interfaz explícitas

_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)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.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)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.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 el número de interfaces de información de tipo que proporciona un objeto (0 ó 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)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Inherited from Attribute)

Se aplica a

Consulte también: