【发布时间】:2009-05-24 02:53:50
【问题描述】:
我正在构建一个通用 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>" />
我知道我可以手动解析尖括号的值并将它们转换为方括号,并添加适当的反引号数字前缀,但是 我想知道是否有任何内置方法可以进行这种转换? 我假设Generic<T> 语法特定于 C#(或至少在 VB.NET 中不同),所以我猜我还必须解析任何其他特定于语言的语法。
我注意到 ASP.NET MVC 在 Page 指令的 Inherits 属性中执行此操作,但我不确定如何。
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master"
Inherits="System.Web.Mvc.ViewPage<MyModel>" %>
【问题讨论】:
标签: c# asp.net generics reflection