我想知道设计应用程序,实际上像Firefox或Chrome这样的应用程序,你可以为它们下载附件并使用?? !! 怎么做.Net ???
答案 0 :(得分:3)
如何让其他人为您的应用制作插件?
1>您创建的DLL
有一个interface
。此interface
定义了一组您希望其他人定义和实施的方法,属性和事件。
插件开发人员需要定义此接口。您的应用和插件开发人员需要此DLL ..
2>插件开发人员将使用该共享DLL
并通过定义其中的方法或属性来实现该接口。
3>您的应用现在会加载该插件并将其投射到共享DLL的interface
,然后调用所需的方法,属性,即界面中定义的任何内容..
你的应用程序将如何获取插件?
您创建folder
,搜索plugins
。这是其他人plugins
为installed
或placed
的文件夹。
实施例
这是您的共享dll
//this is the shared plugin
namespace Shared
{
interface IWrite
{
void write();
}
}
插件开发者
//this is how plugin developer would implement the interface
using Shared;//<-----the shared dll is included
namespace PlugInApp
{
public class plugInClass : IWrite //its interface implemented
{
public void write()
{
Console.Write("High from plugInClass");
}
}
}
这是你的程序
using Shared;//the shared plugin is required for the cast
class Program
{
static void Main(string[] args)
{
//this is how you search in the folder
foreach (string s in Directory.GetFiles(AppDomain.CurrentDomain.BaseDirectory, "*PlugIn.dll"))//getting plugins in base directory ending with PlugIn.dll
{
Assembly aWrite = Assembly.LoadFrom(s);
//this is how you cast the plugin with the shared dll's interface
Type tWrite = aWrite.GetType("PlugInApp.plugInClass");
IWrite click = (IWrite)Activator.CreateInstance(tWrite);//you create the object
click.write();//you call the method
}
}
}
答案 1 :(得分:2)
您应该使用Managed Extensibility Framework(MEF)。
答案 2 :(得分:0)
使用MEF。
Managed Extensibility Framework(MEF)是.NET中的一个新库 这样可以更好地重用应用程序和组件。使用MEF, .NET应用程序可以从静态编译转变为 动态组合。如果要构建可扩展的应用程序, 可扩展的框架和应用程序扩展,然后MEF适合您。
MEF的有用链接。
http://www.codeproject.com/Articles/376033/From-Zero-to-Proficient-with-MEF
http://www.codeproject.com/Articles/232868/MEF-Features-with-Examples