mef

    0热度

    1回答

    我正在开发一个基于模块的WPF应用程序,我很好奇如果有一个选项来控制具有用户权限的模块导出? 我有2个用户使用3个模块的应用程序,每个用户有权查看或不查看这些模块,f.ex. 1.用户有权仅查看前两个模块,而第二个用户有权仅查看1.和3.模块。 权限存储在数据库中,并在同步过程中下载并存储在xml配置文件中(我认为这没有问题)。 模块在每个模块项目中输出为:[Export(typeof(MyBes

    1热度

    1回答

    我有以下MEF测试代码: [Import(AllowDefault = true)] string importedString; [Import(typeof(IString), AllowDefault = true)] public IString importedClass; private void Import(bool fromDll) { Compositi

    3热度

    1回答

    我正在开发接受插件的应用程序,并决定使用MEF。一切正常,直到我尝试使用AppDomain和ShadowCopy。现在,当试图从MEF容器中检索插件时,我正面临元数据接口上的序列化异常。 这里是我的代码的几个组成部分: 容器: public class PluginManagerExtended : MarshalByRefObject { private static re

    0热度

    1回答

    我有方法返回实现特定接口的对象。取决于参数方法返回不同的对象。所有实现相同的接口,所以我可以在方法外部的接口上使用像Execute()一样的方法。 此解决方案迫使我避免使用MEF。我怎样才能同时使用这两种解决方案?从MEF导入构造函数并在不同的类中分离不同的策略? 下面是一个例子代码: [Export(typeof(ICrowdMessageProcessorFactory))] public

    2热度

    1回答

    我使用WPF Prism创建了一个小型演示应用程序,并且使用了Mef。 这里是应用程序的外壳: <Window ..........> <Grid> <ContentControl prism:RegionManager.RegionName="{x:Static inf:RegionNames.ContentRegion}" /> </Grid>

    2热度

    1回答

    我需要创建自定义的WPF行为与注入custructor中的一些依赖关系,我不能使用构造注入,因为我需要在XAML中应用,WPF使用默认构造函数创建实例。 我可以做的一种方式是在默认构造函数或服务定位器中使用Container,但我不想使用这些方法。 我可以在属性上使用[Improt]并使用Container.SatisfyImportOnce,但不是真正整洁的方式,因为我仍将在构造函数中使用容器。

    1热度

    1回答

    我正在使用DirectoryCatalog()和[ImportMany]从多个程序集导入多个相同类型的插件。所有可用插件的列表将呈现给用户以供选择。 导出程序集将由第三方开发,因此必须保证导入的插件的名称是唯一的。 除了将文件名附加到插件全名(例如fileName.assemblyName.pluginName)之外,我无法看到这样做的方法,但是我无法在任何地方找到特定程序集的文件名。如果文件名改

    1热度

    1回答

    底部的代码来自正在工作 WPF示例应用程序使用Autofac进行依赖注入。 我想转换为最新版本的MEF。我还安装了NuGet软件包CommonServiceLocator(V. 1.3)和Prism.Core,Prism.Mef和Prism.Wpf(全部6.1)。 当我做 var provider = ServiceLocator.Current.GetInstance<FriendDataPro

    0热度

    1回答

    我想从我的MefBootStrapper实施 Type type = typeof(OrderDetailsModule.OrderDetailsModule); ModuleInfo mi = new ModuleInfo { ModuleName = type.Name, Ref = new Uri(type.Assembly.Location, UriKind.Rel

    3热度

    1回答

    我目前有点无知。我正在用MEF使用Caliburn微框架。 主应用程序应该加载基本上只包含服务功能的插件。但是,只要我引用一个外部程序集,CaliburnMicro就会拒绝找到MainWindowView(如果没有引用外部程序集,它会很好地工作)。 我的引导程序(基本上从CM示例中的一个): public class AppBootstrapper : BootstrapperBase {