Ағылшын тілінде оқу

Бөлісу құралы:


TemplateInstanceAttribute Класс

Определение

Описывает атрибут метаданных, который используется для указания количества разрешенных экземпляров шаблона. Этот класс не наследуется.

[System.AttributeUsage(System.AttributeTargets.Property)]
public sealed class TemplateInstanceAttribute : Attribute
Наследование
TemplateInstanceAttribute
Атрибуты

Примеры

В следующем примере кода показано, как использовать перечисление TemplateInstanceTemplateInstanceAttribute и класс . Пользовательский LoginView элемент управления с именем MyLoginViewA переопределяет AnonymousTemplate свойство и использует TemplateInstanceAttribute класс , чтобы указать, что создается только один экземпляр AnonymousTemplate свойства.

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

Следующий пример кода представляет собой ASPX-файл, использующий MyLoginViewA элемент управления и демонстрирующий доступ к свойствам TemplateInstanceAttribute класса .

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

Комментарии

Класс TemplateInstanceAttribute позволяет пометить свойство шаблона как свойство, позволяющее создавать один или несколько экземпляров. Шаблон, который допускает создание только одного экземпляра, может содержать элементы управления, содержащиеся в нем, на которые ссылается. Свойство ZoneTemplate является примером свойства, экземпляр которого можно создать только один раз.

Этот TemplateInstanceAttribute класс является необязательным. Если свойство шаблона не расширяется классом TemplateInstanceAttribute , используется значение по умолчанию — Multiple поле . Дополнительные сведения об использовании атрибутов см. в разделе Атрибуты.

Конструкторы

TemplateInstanceAttribute(TemplateInstance)

Инициализирует новый экземпляр класса TemplateInstanceAttribute с заданным значением перечисления TemplateInstance.

Поля

Default

Определяет значение по умолчанию для класса TemplateInstanceAttribute. Это поле доступно только для чтения.

Multiple

Создает экземпляр класса TemplateInstanceAttribute в качестве шаблона, для которого будет создано несколько экземпляров. Это поле доступно только для чтения.

Single

Создает экземпляр класса TemplateInstanceAttribute в качестве шаблона, для которого будет создан один экземпляр. Это поле доступно только для чтения.

Свойства

Instances

Получает значение перечисления TemplateInstance, которое представляет текущий экземпляр шаблона.

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.

(Унаследовано от Attribute)

Методы

Equals(Object)

Показывает, является ли заданный объект объектом TemplateInstanceAttribute, и идентичен ли объекту TemplateInstanceAttribute.

GetHashCode()

Получает хэш-код для объекта TemplateInstanceAttribute.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

Возвращает значение, указывающее, что текущий объект TemplateInstanceAttribute соответствует объекту по умолчанию TemplateInstanceAttribute.

Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)

Применяется к

Өнім Нұсқалар
.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

См. также раздел