人们在没有重新编译的情况下找到/用于向.NET / C#应用添加功能的方式是什么?
我想到的方法是让代码查找要读取的文件,解析该文件,然后根据文件中包含的内容动态创建控件及其事件处理程序等(可能是xml文件)。
或者是否会动态加载.DLL被视为“不重新编译”?
任何想法/“战争故事”?
答案 0 :(得分:6)
所有你需要的 - MEF - Managed Extensibility Framework
答案 1 :(得分:2)
对于行为定义明确的相当简单的案例:
为您的插件定义一个界面。 在dll中实现接口。 使用Assembly.LoadFrom。
加载dll我也会为每个dll添加一个GUID,以便您可以区分它们。
答案 2 :(得分:1)
看看ASP.Net是如何做到的 - 你可以在网站运行时添加ASPX / ASPX.cs文件。简短版本:ASP.Net监听文件更改并将新文件编译到新程序集中,而不是加载到现有AppDomain中以用于呈现新页面。