如何导出c#dll函数以便能够从其他应用程序访问它们

时间:2012-09-17 15:55:22

标签: c#

我想知道如何导出dll函数,因为我有一个程序需要函数导出才能使用它们。

我可以在c#中完成这个吗?

PS:使用dll的程序不是O.Source,我无法将引用添加到其中。

3 个答案:

答案 0 :(得分:0)

1您可以使用MEF Framework - 基于Export, ImportCatalog

链接:http://msdn.microsoft.com/en-us/library/dd460648.aspx

2您还可以使用WCF

在您的网络上公开

链接:http://msdn.microsoft.com/en-us/library/ms735119(v=vs.90).aspx

Nota:您还有其他可能性,这取决于您的选择和技术限制

答案 1 :(得分:0)

如果其他应用程序是.NET应用程序,它可以将引用添加到程序集(DLL),并使用程序集中定义的任何public类型。这使它可以完全访问您的代码。

如果您需要使用本机API与C#代码一起使用,那么这将变得更加困难。有几个选择:

  1. 使用COM。您可以mark types as ComVisible,并注册程序集。这允许您通过COM访问您的代码。
  2. 使用C ++ / CLI围绕托管类型构建本机包装器。这将需要一个单独的程序集(DLL),它提供本机导出,并在内部使用托管类型。
  3. 这里最好的选择实际上取决于“其他应用程序”如何获得对代码的访问权限。如果它不是.NET应用程序,COM通常是最简单的(通常是最好的)选项。

答案 2 :(得分:0)

可能最接近您要求的选项是使用Unmanaged Exports

有关其他选项,请参阅herehere