Я создаю общий серверный элемент управления ASP.NET, у которого есть атрибут, используемый для указания имени типа. Я использую конструктор элементов управления, чтобы сгенерировать общую версию своего элемента управления, передав значение атрибута Type.GetType(string)
. Это прекрасно работает. Однако, если тип, который я хочу указать, является общим, я должен использовать синтаксис, подобный этому:
<gwb:GenericControl runat="server"
TypeName="System.Collections.Generic.List`1[System.String]" />
Я бы хотел набрать его так:
<gwb:GenericControl runat="server"
TypeName="System.Collections.Generic.List<System.String>" />
Я знаю, что мог бы вручную разобрать значение для угловых скобок и преобразовать их в квадратные скобки и добавить соответствующий префикс backtick-numeric, но Мне было интересно, есть ли какой-либо встроенный способ сделать это преобразование ? Я предполагаю, что синтаксис Generic<T>
специфичен для C # (или, по крайней мере, отличается от VB.NET), поэтому я предполагаю, что мне также придется анализировать любой другой специфичный для языка синтаксис.
Я заметил, что ASP.NET MVC делает это в атрибуте Inherits
директивы Page
, но я не уверен, как.
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MyModel>" %>