代码之家  ›  专栏  ›  技术社区  ›  NotDan

如何将.NET控件序列化为代码?

  •  3
  • NotDan  · 技术社区  · 16 年前

    我想在运行时创建一个.NET表单,在其中添加按钮和其他控件(也在运行时),然后能够从该表单生成一个something.designer.cs文件(然后可以将该文件添加到C#解决方案并进行编译)。

    我想做的与WinForm designer做的非常相似。但是,我希望在运行时自己动态构建表单/控件,而不是为用户提供一个拖放界面。

    可能吗?

    3 回复  |  直到 16 年前
        1
  •  7
  •   Hans Passant    16 年前

    MSDN magazine article 应该有你需要的一切。

        2
  •  0
  •   Keith Adler    16 年前

    它并不像.NET之前那样简单,因为您在visual Studio中看到的表单的可视版本实际上是多个文件的结果。

    但在最简单的表单中,您可以简单地镜像.NET在创建新表单时所做的操作:

    1. 创建三个文件Form.cs、Form.Designer.cs和Form.resx(这是一个XML文件)。
    2. 在其中放置与VS相同的默认内容
    3. 模拟添加控件、代码隐藏和资源时生成的代码

        3
  •  0
  •   bohdan_trotsenko    16 年前

    是的,您可以使用编译器服务(编译c代码)或 Emit 类,如果您知道如何构建正确的MSIL。