问题标签 [maf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
310 浏览

.net - 使用自定义 AppDomain 激活 MAF 加载项时出现问题

我正在尝试使用AddInToken.Activate()接受 的 MAF 方法的重载AppDomain,以便我可以传递由我的客户端应用程序创建的应用程序域。

当传递AppDomain的配置了不受限制的权限时,它可以正常工作,但是如果我减少权限集(例如,通过使用 Internet 沙盒权限集),MAFSecurityException在执行发现其加载项所需的反射时会抛出一个。由于 MAF 程序集安装在 GAC 中,它们不应该被完全信任吗?

我知道 MAF 提供了其他方法重载,它们将为AppDomain我创建一个并允许我指定分配给它的权限集,但我不能在我的应用程序中使用这种方法,因为我需要能够指定我自己的列表将获得完全信任的强名称程序集。

有什么建议么?

谢谢,

蒂姆

0 投票
1 回答
781 浏览

wpf - WPF MAF (System.Addin) 控件中的 Telerik 报告

我正在使用 MAF (System.Addin) 将 WPF 控件显示到共享主窗体上。当我添加 Telerik reportviewer 时,我得到一个异常,我试图访问一个不同的线程,然后是拥有该控件的线程。如果您查看异常堆栈,您可以看到对 Application.Mainwindow 的引用,因为我在 Addin 中,所以应用程序主窗口不属于我的域。

有没有办法在 Addin 对象中设置 Application.Mainwindow ?

0 投票
1 回答
903 浏览

c# - C# .NET 4.0 表单插件管理器

我对 MEF、MAF、Unity 有点迷茫……

这个问题是关于 Winform 应用程序的体系结构的。

我有一个主项目,其中包含一个主窗体和一些其他窗体;

因为我想包含模块化,所以我正在考虑使用插件系统。

我想做的是在打开主应用程序时打开每个插件 Dll以使用按钮、工具栏...

然后我想处理它们,直到它们被调用。

但我不希望所有插件都保存在内存中......只是为了获得一个好的架构模型。

所以首先关于 .NET:dotNet 是否只保留对内存中 dll 插件或所有插件代码的引用

我正在考虑将 MEF 与LAZYImport 集合一起使用,但我需要先实例化它们以获取我的按钮信息。所以第二个问题

如果我将 Import Collection 设置为null并再次启动compose()函数,插件将被加载或等到调用加载(惰性)?

0 投票
1 回答
608 浏览

.net - IoC 和托管插件框架 (System.AddIn) 可以与隔离的 AppDomain 一起使用吗?

如果我使用托管插件框架 (System.AddIn) 并将其设置为使用单独的 AppDomain,我是否可以使用位于主要/默认 AppDomain 中的集中式 IoC 容器?IoC 容器能否跨 AppDomain 解析?

0 投票
1 回答
224 浏览

.net - .NET 插件框架,忽略文件夹 (.svn)

是否可以使 AddIn Framework (MAF) 的 AddInStore 忽略某个目录?

在我的情况下,插件商店是由颠覆版本控制的,但是当管道重建时,我收到错误消息,即插件中的“.svn”文件夹不包含有效的插件:

在目录 [..]\AddIns\.svn 中找不到有效的加载项。

0 投票
2 回答
305 浏览

.net - 使用 Microsoft AddIn Framework 时应如何组织 AddIn 的参考程序集

这是我的场景:

我正在为我的项目使用 Microsoft AddIn 框架,以便拥有一个不错的插件架构。我还有一个自定义 API,我将其编译为 dll。宿主应用程序和所有插件都需要引用这个 api。显然,当使用这个框架时,所有的插件都必须在 AddIns 目录中它们自己的目录中。

根据我目前的经验,必须将单个插件引用的任何程序集放在单个插件的目录中,否则将找不到它导致异常。在我的情况下,每个插件都引用 API,因此必须在其目录中包含该 dll。这意味着我有一堆似乎不必要的 API dll 副本。我宁愿只有一个地方可以放置所需的程序集(例如应用程序根目录下的 lib 文件夹),主机和所有插件都可以找到它们。这可能吗?也许以不同的方式加载插件(appdomain?)将允许他们查看主机应用程序目录。我对 MAF 比较陌生,所以任何关于如何做这个组织的建议都会有所帮助。

0 投票
2 回答
1540 浏览

c# - 如何在 WCF 服务中动态加载和卸载 .Net 程序集

我想开发一个 Windows 服务托管的 wcf Web 服务,该服务将充当任务执行管理和报告服务。每个任务将表示为一个 .net 程序集,任务名称和 dll 路径将位于中央配置中。该任务至少主要有一个 Execute 和一个 Stop 方法。应该可以在 wcf 服务运行和其他任务运行时加载、执行、停止和卸载任务。每个任务的一个实例可以同时运行。有异常的一项任务不应中止其他任务。我正在考虑类似的方法

我正在考虑如何按需完成此加载和卸载任务以及隔离。一些选项将使用反射、MAF(System.Addin)等。加载的初始性能影响是可以接受的,因为这种加载/卸载很少发生。

实现这一目标的最佳方式是什么(库、api、框架等)。

0 投票
1 回答
484 浏览

c# - 每个 MAF 插件的 UI 线程

我在 WPF 中使用MAF,但 UI 线程有问题。我希望我激活的每个插件都成为一个独特的 UI 线程。

为什么我想要你可能想知道?我试着解释:-)

我有一个主机应用程序,它是插件的容器。不同的人为主机开发插件。如果开发人员在他们的插件中启动了一个长过程并且他们忘记了在线程中调用或启动该过程,那么主机将冻结,因为主机和插件共享相同的 UI 线程。

每个插件都在单独的应用程序域中运行。关于每一个暗示我都会很高兴。

0 投票
2 回答
657 浏览

c# - 在 AddInToken.Activate 中捕获异常()

我使用MAF,但在激活插件时遇到问题。让我解释一下我的计划。

首先我创建一个辅助 AppDomain 然后我尝试激活插件:

我的 AddIn 非常简单,只引用了一个辅助程序集。如果这个助手程序集在 AddIn 的目录中,所有的东西都像一个魅力。

插件

  • MyDemoAddIn.dll
  • 助手.dll

如果我删除 Helpers.dll 整个应用程序崩溃:

MyDemoAddIn.DLL 'PresentationHost.exe' (Managed (v4.0.30319)) 中发生了“System.IO.FileNotFoundException”类型的第一次机会异常:加载了 'C:\WINDOWS\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources \v4.0_4.0.0.0_de_b77a5c561934e089\mscorlib.resources.dll' mscorlib.dll 中出现“System.Reflection.TargetInvocationException”类型的第一次机会异常 System.Reflection.TargetInvocationException 类型的第一次机会异常发生。 AddIn.dll System.AddIn.dll 中出现“System.Reflection.TargetInvocationException”类型的第一次机会异常

我用异常处理测试了所有东西。我无法从主机、AddInView 或我创建的 AppDomain 中捕获异常:-(

有人有想法吗?

0 投票
2 回答
886 浏览

c# - 如何正确处理 Windows 服务主机内的 MAF 插件崩溃?

我有一个使用 MAF 加载用户创建的插件的 Windows 服务。这是我加载每个插件的方式:

所有插件都可以正常加载,没有任何问题。我遇到的问题是我无法控制插件的质量,有时它们会崩溃并导致整个服务停止。有没有办法让我正确捕获插件中出现的任何错误,这样它就不会导致服务崩溃。