我必须写一个add-in
对于现有的应用程序。客户将使用该应用程序和加载项。应用程序和 add-in
对用户来说是黑匣子。我的加载项是 .Net C# dll
用户可以使用 C# 进行编码。
现在我必须提供一种机制,用户可以通过该机制编写一些C#
代码。该代码将由我的 add-in
加载并执行在运行时以便获取加载项中所需的数据。
实现这一目标的最佳实践是什么
编辑
只是为了澄清一点......
在我的加载项中,在执行过程中,我得到一个字符串
现在我想调用一些用户函数
string resultString = UserFunction("SomeString");
现在我想知道如何允许用户写这个UserFunction
这样我就可以在运行时调用它并获取 resultString
返回基于SomeString
最佳答案
呃..这有点棘手...特别是如果它必须完全按照您提出问题的方式发生。
您可以允许用户将文本 C# 代码传递给 dll 中的函数,然后基本上将该代码编译到内存中的程序集中,但这似乎需要大量工作才能允许某人将代码传递到已编译的程序集中DLL,以便重新编译并再次运行。
您可以查看此处的帖子,了解有关此主题的更多信息: http://www.dotnetthoughts.net/2011/01/09/how-to-compile-c-code-snippet-in-runtime/
更好的做法是仅将 DATA 传递到 DLL(如果您能以某种方式重构您的应用程序以支持它)。
关于c# - 是否有任何标准方法或设计模式来处理这个问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9005384/