问题标签 [prism-4]

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 投票
2 回答
322 浏览

c# - 打破 .NET MEF 导入链

对于此示例,您可以假设顶层正在导入 ClassA。只要您导入所有内容(即 ClassX),MEF 似乎就可以很好地工作。通常你不需要导入,因为 classB 在同一个命名空间/文件中。结果,导入链现在被破坏,并且 myLog 导入永远不会被组合。在我的示例中,ClassB 正在尝试导入 Logger Service,这几乎是所有类都希望的。

如果有的话,哪个是该问题的预期/最佳 MEF 解决方案?

1)一旦导入链被破坏,永远不要再使用导入。相反,您必须开始创建/将所有类型传递给构造函数(即 new ClassB(myLog))。这在此示例中有效,但如果链中存在未使用参数的中间类,则会很混乱。

2)利用System命名空间中的IServiceLocator导入ClassB。据我所知,ServiceLocator(例如 Prism 框架)的存在只是为了抽象依赖注入方案。对于此示例,如果 ClassB 可以导入 IServiceLocator,那么它可以导入 ILogger。

3) 回到顶层调用 ComposeParts(ClassB)。为了防止顶层依赖于 ClassB,我可以让 classB 实现顶层导入的接口 (IComposeMe)。然后顶层将 ComposeParts 在容器上用于所有 IComposeMe 导入。我不认为这是预期的解决方案,因为 MEF 框架文档中没有描述或使用它。

4)实际上我没有想法,请帮助......

0 投票
1 回答
502 浏览

silverlight-4.0 - Silverlight 4 + WCF RIA Services + Prism v4 为什么我的 shell 需要模块依赖?

我正在尝试创建一个 WCF RIA Services + Prism v4 应用程序,其中项目的布局如下:

客户端

模块(目前只有一个):

Project.Modules.Clients(包含指向我的 Project.Web 应用程序的 WCF RIA 服务链接,并且依赖于服务器端 Project.Web 项目)

壳牌项目

Project.Shell(包含指向我的 Project.Web 应用程序的 WCF RIA 服务链接,并且依赖于 Project.Modules.Client 模块和 Project.Web 项目。还包含在我继承的 UnityBootstrapper 中使用的模块目录 XAML 文件)

服务器端

主要网络项目

Project.Web(包含我的 WCF RIA 服务、DataModel 等)

问题

为什么我需要从我的 shell 项目中引用模块项目?这不是本质上违背了动态模块初始化的目的吗?我尝试了几个示例项目和博客文章,包括:

http://telecosystems.codeplex.com

以及随附的博客文章:

http://bachelorthesis.zdechovan.com/prism-solution-based-on-the-business-application-template/

以及 David 的 MSDN 博客文章:

http://blogs.msdn.com/b/dphill/archive/2009/08/17/prism-and-net-ria-services.aspx

当我不包含参考时会发生什么是这样的例外:

所以很明显 Unity 似乎无法接受该模块,尽管我已经三重检查了我的引导程序和模块目录文件。

任何关于我可能做错了什么的任何指针都需要从我的 shell 中对我的模块进行这样的引用,我们将不胜感激。

谢谢。

0 投票
1 回答
68 浏览

c# - 基于该区域注册视图的不同控制

我正在构建一个复合应用程序,除其他外,它为插件(基于统一)提供了一个区域来注册视图。

问题是我想根据注册视图的数量为该区域设置不同的布局。特别是,我希望为“已注册一个视图”案例提供一个巨大的(向各个方向拉伸)单个区域,并为“已注册 1 个视图”案例提供一个两列(统一)网格。

所以 - 现在我有(简化)这样的事情:

如果视图是〜动态的〜并在其他地方注册,我如何涵盖特殊的“仅一个元素”情况?

0 投票
1 回答
278 浏览

silverlight-4.0 - 基于 Prism 4 的 Silverlight 应用程序中的模块间共享样式

我需要在基于 Prism 4 的 Silverlight 应用程序的几个模块中使用样式。对此最好的方法是什么?

0 投票
2 回答
55 浏览

architecture - 处理模块化应用程序的数据

我创建了一个模块化应用程序,其中每个模块仅通过具有强大接口的另一个模块进行通信。最近我发现我们未能完全分离模块,因为每个模块都可以访问一组共享的对象。

分离这一层的最佳方法是什么?数据对象表示在屏幕上显示的新记录。

0 投票
2 回答
3393 浏览

wpf - Prism / MEF:如何在不硬编码区域名称的情况下注册 ViewWithRegion

我们正在构建一个 WPF Prism 应用程序。我们有不同的开发人员从事不同的模块项目,并且将多个模块注入到主应用程序外壳中。主应用程序也是一个单独的项目。我们还希望能够在不同的应用程序中使用这些模块。我们不希望在每个应用程序中都使用相同的名称命名区域。

例如,假设我们有一个要在两个不同应用程序中使用的模块。在一个应用程序中,其开发人员可以将模块的区域命名为“DetailsRegion”,而在另一个应用程序中,其开发人员可以将其命名为“ResultsRegion”。

我可以找到的每个示例都通过在模块的类定义中硬编码区域名称来使用区域注册视图:

我想要做的是将区域名称放在主应用程序的 app.config 文件中,并将此名称传递给模块。像这样的东西:

在主 Shell 应用程序的 app.config 中:

在模块的类文件中:

在某种程度上,这将是使模块与外壳和彼此完全分离的最后一步。

这在模块的视图中完美运行。但我无法在模块的类定义文件中执行此操作,因为 ConfigurationManager 在该级别不可用。

我可以通过将区域名称放在模块的app.config 的 ApplicatonSettings 部分来做到这一点。但这违背了将模块存储在一个位置以供多个应用程序加载的目的。它确实需要在主应用程序的app.config 中。

有没有办法用区域注册模块的视图,而无需在代码中硬编码区域的名称?我们非常努力地不硬编码任何东西。这里真的有必要吗?

0 投票
2 回答
1708 浏览

wpf - 我可以实现自己的视图解析服务并让 RequestNavigate 使用它吗?

我对 Prism 还很陌生,我目前正在使用 Prism 作为概念验证项目重写我们现有的应用程序之一。

该应用程序使用 MVVM 和 ViewModel 优先方法:我们的 ViewModel 由容器解析,并且IViewResolver服务确定它应该连接到哪个视图(使用名称约定等)。

目前的代码(将视图添加到选项卡控件)如下所示:

这一切都很好,但是我真的很想使用 Prism 导航框架来为我做所有这些事情,这样我就可以做这样的事情:

并让 Prism 启动 ViewModel + View,设置 DataContext 并将视图插入该区域。

我通过创建引用 ViewModel 类型的 DataTemplates 取得了一些成功,例如:

...并在模块初始化时让模块将相关资源字典添加到应用程序资源中,但这似乎有点垃圾。

有没有一种方法可以有效地从 Prism 接管视图创建,以便在RequestNavigate调用时我可以查看提供的Uri并基于它启动视图/视图模型?有一个重载RegionManager.RegisterViewWithRegion需要一个允许您自己提供视图的委托,我想我正在追求类似的东西。

我想我可能需要提供我自己的IRegionBehaviorFactory,但我不确定所涉及的内容(或者即使我走在正确的道路上!)。

任何帮助表示赞赏!

-- 注意:最初发布在prism codeplex 网站

0 投票
1 回答
1501 浏览

silverlight - 无法使用 prism4 在 silverlight 5 中加载文件或程序集“System.Windows.Controls”

我正在使用 prism 4 创建应用程序 silverlight 5,当我使用 UnityBootstrapper 运行引导程序时,出现下一个错误:

无法加载文件或程序集“System.Windows.Controls,Version=2.0.5.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”或其依赖项之一。该系统找不到指定的文件。

ConfigureRegionAdapterMappings 方法中的此错误:

奇怪的是,如果我将项目更改为 silverlight 4,那么它工作正常(?)。请你帮助我好吗?

谢谢!

0 投票
0 回答
190 浏览

c# - Prism 4 + Mef + public partial class App = Bag?

I'm trying to implement the interface IPartImportsSatisfiedNotification but unfortunately it does not work. This bug I have only the prism. I can't understand why this is happening.

Test Application

0 投票
1 回答
346 浏览

windows-phone-7.1 - 将 Prism 4 用于 Windows Phone 7 的示例

有没有为 Windows Phone 7 使用 Prism 4 MVVM 框架的简单示例?

并且已经编写了测试,并且没有文档-但最重要的是-没有示例

PS他们在想什么???