从存储的动态对象创建智能感知

时间:2013-04-02 14:13:00

标签: c# asp.net-mvc visual-studio dynamic intellisense

我即将根据动态变量等为MVC项目和网站创建一些设置。 这些设置将存储在xml中,以便于读写。

我现在的问题是,在阅读了关于在这个问题中扩展智能感知之后:

Is it possible to provide intellisense for dynamic objects in visual studio?

是否可以读取我保存的设置(在运行时存储),然后在下次运行中构建一个智能感知器?

即。对于这些site.setings.layout.width中的每一个,#34;年龄较大的"保存的xml定义的动态将能够显示出来吗?

1 个答案:

答案 0 :(得分:1)

如果您只需要xml“intellisense”,那么考虑设计xml架构并将它们转储到Visual Studio installation Folder\xml\Schemas中或将它们包含在您的解决方案中,如果命名空间匹配得恰当,VS将完成其余的工作。

编辑: 一段时间后回到这里。似乎没有给出其他答案,所以我会尝试更有创意。

  1. Visual Studio可以选择从xml文件生成xsd。请注意,架构主要是近似值,但它将与文件匹配,并且将是对结构的良好描述。如果你能找到一种方法从命令行调用它(或者可能找到一个类似的步骤工具),你可以用xsd.exe链接它并在构建时从它生成C#类(预建步骤)
  2. 如果第一点过于繁琐,您可以尝试编写一个T4 template来读取以前的配置文件并根据该文件生成自定义代码。使用T4生成基于某些xml的POCO属性结构应该相当简单。该模板应作为预编译步骤运行。
  3. 请注意,这两个建议都涉及静态代码生成。可以使用F# type providers完成动态解决方案,但C#不可用。