【问题标题】:asp.net get Strongly Typed from stringasp.net 从字符串中获取强类型
【发布时间】:2011-01-06 06:16:02
【问题描述】:

我的错误代码:

string model = "Content";
Type stype = Type.GetType("mvc.Models." + model);
ViewPage<stype> vp = new ViewPage<stype>();

编译时当然会出错,但它清楚地表明了我的想法。我可以这样做吗?

【问题讨论】:

  • 呃,我在这里看到代码,不是错误代码...
  • 我无法编译它,所以它是否出错?错误 1 ​​找不到类型或命名空间名称“stype”(您是否缺少 using 指令或程序集引用?)
  • 好吧,阅读你的代码,你确定你的项目中有一个 'mvc.Models.Content' 类型可用吗?

标签: asp.net asp.net-mvc strong-typing


【解决方案1】:

该函数GetType 需要一个assembly-qualified name,而不仅仅是您提供的命名空间。

【讨论】:

  • 我不这么认为,因为我可以做到这一点而不会出错 Models.Content c = (Models.Content)Type.GetType("mvc.Models.RSSContent").InvokeMember("", BindingFlags.CreateInstance,空,空,空); RSSContent 继承自 Content
  • 我不确定,但您尝试做的可能超出了语言结构的范围。似乎当您对 Type 进行逐字编码时,无论是作为类型 dec 还是显式强制转换,它似乎都有效。我怀疑编译器不喜欢从运行时评估的类型变量中定义显式类型,这就是你得到构建消息的原因。
猜你喜欢
  • 2011-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-01
  • 1970-01-01
  • 2023-02-25
  • 2013-05-30
相关资源
最近更新 更多