【问题标题】:Ways to add functionality to a C# app without recompiling在不重新编译的情况下向 C# 应用程序添加功能的方法
【发布时间】:2012-03-13 17:03:15
【问题描述】:

人们发现/使用了哪些方法可以在不重新编译的情况下向 .NET/C# 应用程序添加功能?

我想到的方法是让代码查找要读取的文件,解析该文件,然后根据文件中包含的内容(可能是xml 文件)。

或者动态加载 .DLL 是否会被视为“不重新编译”?

有什么想法/“战争故事”吗?

【问题讨论】:

标签: c# .net dynamic compilation


【解决方案1】:

所有你需要的 - MEF - Managed Extensibility Framework

【讨论】:

    【解决方案2】:

    对于行为定义明确的相当简单的案例:

    为你的插件定义一个接口。 在 dll 中实现接口。 使用 Assembly.LoadFrom 加载 dll。

    我也会为每个 dll 添加一个 GUID,以便您将它们区分开来。

    【讨论】:

      【解决方案3】:

      看看 ASP.Net 是如何做到的——你可以在网站运行时添加 ASPX/ASPX.cs 文件。短版:ASP.Net 侦听文件更改并将新文件编译到新程序集中,然后加载到现有 AppDomain 中以用于呈现新页面。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-12-12
        • 1970-01-01
        • 1970-01-01
        • 2011-11-06
        • 2010-10-21
        • 2012-02-13
        • 2016-10-07
        相关资源
        最近更新 更多