问题标签 [autofac]
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.
wpf - WPF 应用程序是否可以进行依赖注入?
我想开始在我的 WPF 应用程序中使用依赖注入,主要是为了更好的单元可测试性。我的应用程序主要是按照 MV-VM 模式构建的。我正在为我的 IoC 容器寻找Autofac,但我认为这对这个讨论没有太大影响。
将服务注入启动窗口似乎很简单,因为我可以在 App.xaml.cs 中创建容器并从中解析。
我正在苦苦挣扎的是如何将 DI ViewModels 和服务转换为用户控件?用户控件是通过 XAML 标记实例化的,因此它们没有机会Resolve()
。
我能想到的最好的办法是将容器放在单例中,并让用户控件从全局容器中解析他们的 ViewModel。充其量,这感觉像是一个半途而废的解决方案,因为它仍然需要我的组件依赖于 ServiceLocator。
使用 WPF 可以实现完整的 IoC 吗?
[编辑] - 有人建议使用 Prism,但即使评估 Prism 似乎也是一项巨大的投资。我希望有更小的东西。
[编辑] 这是我停止的代码片段
asp.net-mvc - 如何使用 Autofac 确保每个请求都有一个 NHibernate ISession?
我在 Application_Start 方法中使用的 Autofac 模块中有以下代码:
存储库的构造函数将 ISession 作为参数。但是我最终得到了整个应用程序的一个会话,即使我明确要求它是 HttpRequestScoped。
我已经配置了 ContainerDisposal HTTP 模块。
根据文档,您必须创建一个嵌套容器,但我让 Autofac 自动装配依赖项。
我该怎么办?
谢谢!
asp.net - 将 Autofac 与 ASP.NET 和 MVP 模式一起使用
我正在尝试将 Autofac 集成到现有的 ASP.NET Web 应用程序中。
这些页面遵循 MVP 模式。每个页面都实现一个 View 并将功能委托给 Presenter。View 通过构造函数注入到 Presenter 中。
我能够注册演示者和视图并且页面加载正常,但是当回发发生时,视图上的用户控件为空。似乎 Autofac 创建了一个新的 Page 实例来提供给演示者,而不是给它实例真正的 Page 实例。有没有办法让页面实例注册到 Autofac?
有没有人将 Autofac 与 ASP.NET 和 MVP 一起使用?
谢谢!
autofac - Autofac参数传递
我一直在尝试集成最新版本的 autofac (1.3.3.54),但遇到了以下问题。
根据项目的 Google 代码 wiki,在注册回调中使用参数的推荐方式如下:
builder.Register((c, p) => new Foo(p.Get("arg1")));
但是,这不会与提到的 autofac 代码版本一起编译。我查看了源代码,发现 p 是一个 IEnumerable (ComponentActivatorWithParameters)。相对于文档,代码是否已过时?
c# - 在给定的场景中使用 ninject/autofac
我有一些提供者,比如说 -
这些提供商中的每一个都可以给我一个会话:
目前,我通过查看提供者、实例化类型和注入 URL(手动)来实例化“命名”会话。
我可以使用会话工厂,它可能必须理解 url 并返回正确的会话。
有没有办法用 ninject/autofac 更优雅/更简单地处理这个问题?
c# - 如何使用 MySQL 配置流畅的 nHibernate
我正在尝试将 nHibernate 配置为使用 MySql 数据库。我找到了 mssql 和 sqlite 的示例,但没有找到 mysql 的示例。那么,我该如何更改它以使其使用 mysql:
asp.net - Web应用程序中的Autofac,我应该将容器存储在哪里以便于访问?
我对使用 Autofac 还是很陌生,我在文档和示例中错过的一件事是如何轻松地从 Web 应用程序的不同位置访问配置的容器。
我知道我可以使用 Autofac 控制器工厂来自动解析控制器的构造函数注入依赖项,但是您可能需要解决尚未注入的其他内容呢?
有没有我不知道的明显模式?
谢谢!
inversion-of-control - 使用 Autofac 有什么优点和缺点
我读过 Autofac 说它很快。我看过所涉及的编码,它非常整洁。但我不太确定如何使用它。我用过 StructureMap,它有一个静态的 ObjectFactory。Ninject 有内核,但在 Autofac 的 Google 页面中,他们建议这样做:
这是一个 WinForms 应用程序,所以我从上面的操作中得到了一个无效的对象状态,所以我切换到了一个全局 IContainer,并这样做了
我已经使用了大约 3 或 5 次。但这有效吗?还是我应该做类似的事情
并在幕后
你会使用哪个,为什么?使用 CreateInnerContainer() 也会受到惩罚吗?
c# - 跟踪 WPF 中的内存泄漏
背景:我们正在构建一个快速交付 WPF 应用程序的框架。该框架使用 Autofac 作为 IoC 容器,还使用 Prism v1 中的区域。我们正在使用 Microsoft 的并行扩展来安排任务。
我们面临以下问题:当我们用空视图启动应用程序时(所以只是一个带有区域和占位符控件的外壳),内存将保持稳定约 60 秒,之后它将每秒增加 4kb,然后是 4kb ,在那之后的8kb。因此,每 3 秒我们就会增加 16Kb 的内存压力。
我们试图追踪泄漏的原因是什么。我开始使用 dotTrace,但我看不出相隔 30 分钟拍摄的 2 个快照之间有任何区别。继续使用 .NET 内存分析器,因为它为我提供了更多信息,但我们再次看不到 2 个快照之间的任何差异。我们可以看到创建了许多对象,但它们也被删除了,导致 delta 为 0。所以我继续使用 windbg,但结果是一样的。
另一个奇怪的事情是,当我们启动 sysinternals dbgvw 时,我们看不到在我们的应用程序中进行任何调用。
您对我们下一步可能尝试找出什么/谁是罪魁祸首有什么建议吗?