我有一种情况,我想在运行时使用他们的 EditorFor/DisplayFor 模板(或类似的东西)构建 MVC 样式视图。
理想情况下,我们的应用程序会让用户在他们的 UI 中选择他们想要的字段(这样他们就可以添加/删除他们认为合适的任何字段),为此我认为在运行时创建视图模型类并添加各种根据用户选择的内容(即字符串长度、必需等)赋予它们的 dataannotation 属性。
我需要能够支持的一件事是在运行时更改生成的类而不影响其他用户或不必执行完整的 iisreset。
为此,我一直在做一些研究,似乎可能有 3 种不同的方法,CodeDom、RunSharp / Relfection.Emit、Roslyn。
据我所知,reflection.Emit/Runsharp 将允许我创建类并在运行时向它们添加属性和属性,并且可能还可以在需要时修改它们而不会产生不利影响。
我不确定 Roslyn 是否允许这样做,我无法找到任何创建具有属性或属性的类的简单示例,而且我看到一些提到 Roslyn 的输出是不可变的,所以我我不确定这如何让我在以后修改它而不会产生不利影响。
一般来说,我所看到的大多数人都不推荐 CodeDom,所以我不完全确定我是否应该费心走这条路。
谁能告诉我这些方向中的哪一个对我来说是可行的?