【问题标题】:Is it possible to get design-time code completion for dynamic types?是否可以获得动态类型的设计时代码完成?
【发布时间】:2011-04-25 07:00:13
【问题描述】:

我正在研究动态生成类型,即。 TypeBuilder, Reflection.Emit.. 是否有可能为此类创建的类型获得设计时代码完成?即类型名称识别,键入“obj1.”后的属性列表等。

Full Context:试图在运行时生成对应于数据库表的实体和数据访问对象。代码生成是一种选择,但我想看看是否可以不使用它。有一些反射方面的经验,但没有构建反射.发射方式的类型。

【问题讨论】:

  • 如果你的类型是在运行时发出的,你怎么可能希望在设计时完成它们的代码呢?或者您是否建议生成运行时代码,以便在应用程序终止后生成的程序集继续存在?
  • 我也是这么想的。但我想知道是否有某种方法。使用 TypeBuilder 创建新类型时会定义一个新的程序集,如果该程序集可以像项目中的其他程序集一样以某种方式“挂钩”到 Visual Studio 代码完成中,那将是可能的。
  • 不,我实际上是在尝试避免代码生成。

标签: c# orm code-generation reflection.emit dynamic-typing


【解决方案1】:

如果没有一些严肃的设计师魔力,这不太可能。发出的代码直到运行时才真正生成,这意味着它在设计时实际上并不可用。您可以使用 T4 模板以这种方式生成您的类型,因为设计师将评估模板以构建所需的类型,这些类型当然在设计时立即可用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    相关资源
    最近更新 更多