基类中的 Autofac 属性注入

2024-01-29

我正在开发 Windows Phone 8.1 应用程序,并且有一个具有公共属性的基类。

public class ViewModelBase
{
   public ISomeClass MyProp {get;set;}
}

我的派生类看起来像这样

public class MainViewModel : ViewModelBase
{
    private readonly INavigation _navigation;
    public MainViewModel(INavigation navigation)
    {
        _navigation = navigation;
    }
}

在我的 App.cs 中我有

 var builder = new ContainerBuilder();
 builder.RegisterType<Navigation>().As<INavigation>();
 builder.RegisterType<SomeClass>().As<ISomeClass>();
 builder.RegisterSource(new AnyConcreteTypeNotAlreadyRegisteredSource());

创建 MainViewModel 后,我的 INavigation 已解析,但 MyProp 为 null。 我努力了

builder.Register(c => new ViewModelBase { MyProp = c.Resolve<ISomeClass>() });

builder.Register(c => new ViewModelBase()).OnActivated(e => e.Instance.MyProp = e.Context.Resolve<ISomeClass>());

builder.RegisterType<ViewModelBase>().PropertiesAutowired();

但都不起作用!

解决方案发布在这里http://bling.github.io/blog/2009/09/07/member-injection-module-for-autofac/ http://bling.github.io/blog/2009/09/07/member-injection-module-for-autofac/

有效,但我不喜欢它:)

在这种情况下我不想使用构造函数注入。

谢谢。


这将加载所有继承的类ViewModelBase并仅注入您想要的特定属性。很多时候,您不希望注入子类的其他属性。

builder.RegisterAssemblyTypes( GetType().Assembly )
    .AssignableTo<ViewModelBase>()
    .OnActivated( args =>
    {
        var viewModel = args.Instance as ViewModelBase;
        if( viewModel != null )
        {
            viewModel.MyProp = args.Context.Resolve<ISomeClass>();
        }
    } );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基类中的 Autofac 属性注入 的相关文章

  • 如何使用 C# 中的参数将用户重定向到 paypal

    如果我有像下面这样的简单表格 我可以用它来将用户重定向到 PayPal 以完成付款
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • HTTPWebResponse 响应字符串被截断

    应用程序正在与 REST 服务通信 Fiddler 显示作为 Apps 响应传入的完整良好 XML 响应 该应用程序位于法属波利尼西亚 在新西兰也有一个相同的副本 因此主要嫌疑人似乎在编码 但我们已经检查过 但空手而归 查看流读取器的输出字
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • C# 成员变量继承

    我对 C 有点陌生 但我在编程方面有相当广泛的背景 我想做的事情 为游戏定义不同的 MapTiles 我已经像这样定义了 MapTile 基类 public class MapTile public Texture2D texture pu
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何在文本框中插入图像

    有没有办法在文本框中插入图像 我正在开发一个聊天应用程序 我想用图标图像更改值 等 但我找不到如何在文本框中插入图像 Thanks 如果您使用 RichTextBox 进行聊天 请查看Paste http msdn microsoft co
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • Chrome 的开发工具或 Firebug 中是否存在“设置下一条语句”功能?

    IE 的开发工具 更具体地说是其 JavaScript 调试器 提供 设置下一条语句 命令 使您能够指定接下来应执行哪条语句 这样 您可以有效地跳过函数的某些部分 甚至 再次有效地 提前从函数返回 那么 对于这个函数 function te
  • 如何在iReport中设置整个页面的背景颜色?

    我使用的是 iReport 3 7 4 我想为整个页面设置背景颜色 我没有找到任何背景颜色的报表属性 有人能帮我吗 您可以在以下帮助下解决问题Background Band 我已经把staticText元素上Background Band并
  • 在 Django 管理中,有没有办法显示模型的一对多对象的实际链接列表?

    如果这太复杂或不是正确的做事方式 请随时将我链接到其他内容 或者只是告诉我应该以另一种方式做 基本上 我正在开发一个有客户的项目 每个客户都附加了任意数量的网站 因此 网站模型有一个到客户端模型的外键 网站管理页面非常深入 每个客户端可能有
  • 升级到Xcode4.5 iOS6 Base SDK后运行时异常

    我最近升级了我的代码库以使用 iOS6 Base SDK 我正在使用 XCode 4 5 我只需要将 dylibxml2 2 3 7 更改为 dylibxml2 2 在6 0模拟器上运行良好 我正在使用像 GoogleAnalytics T
  • Celery 无法启动 EOFError('Ran out of input')

    一切都工作得很好 直到 celery beat v3 1 18 Cipater is starting Configuration gt broker gt amqp user staging api user app com 5672 l
  • 将纬度和经度转换为公里

    我正在构建应用程序 我可以在其中获取用户的latitude and longitude使用下面的代码 p Click the button to get your coordinates p
  • 在 Javascript/jQuery 中克隆事件对象[重复]

    这个问题在这里已经有答案了 如何创建一个完全独立的新事件对象 其中包含与给定事件对象完全相同的所有属性e 到目前为止 我已经尝试过以下方法 但没有运气 function myHandler e e e originalEvent metho
  • React+Flux:通知视图/组件操作失败?

    我正在编写一个注册表组件 当表单提交时 它会触发创建用户操作 createUser 操作通过 ajax api 调用创建一个新用户 如果用户已存在 则触发的用户操作将失败 我们知道我们无法从 ajax 调用返回响应 我们需要一个回调 我如何
  • 使用 Flexbox 填充剩余空间

    我希望中间行像其他网站一样填满整个浏览器 所以即使内容很少 我也希望中间的行填满整个空间 这是CSS import compass css3 wrapper display webkit box display moz box displa
  • 如何在 Tkinter 中将小部件放置在 Canvas 小部件中?

    我基本上希望能够使用Canvas作为其他小部件的元容器 我想将我的 GUI 分为左侧 中间和中间部分 在每个部分中我希望能够place小部件如 Checkbutton Button Label etc 如何将小部件放置在 Canvas 小部
  • 什么是大 O 表示法? [复制]

    这个问题在这里已经有答案了 可能的重复 大O的简单英语解释 https stackoverflow com questions 487258 plain english explanation of big o 我知道 Big O 表示法用
  • Nancy 未能在自定义约定中找到静态内容

    我已经设置了一个 Nancy 引导程序来从非默认目录路径 它是自托管的 Nancy 提供静态内容 奇怪的是 以下内容适用于自定义视图位置约定 但不适用于 js 或 css 静态内容约定 是的 文件和文件夹都存在于这些位置 我尝试解决此问题的
  • 使用 SBT 进行多版本构建

    我想在 SBT 中实现以下构建 拥有多个 scala 版本 具有多个目标版本 由于库依赖性 让我们以一个外部库为例 它存在于版本1 0 2 0 3 0和Scala 2 92 2 10 2中 我想编译 汇编和发布 MyProject exte
  • DerivedData 中缺少 TestSummeries.plist 文件

    我正在使用 xcode 11 beta 在 iOS 13 0 设备上运行单元测试 测试执行后 它应该在里面生成一个 testummeries plist 文件 Users YourUsername Library Developer Xco
  • 使用 NSURLConnection 进行 POST - 无 JSON

    我正在尝试用 Objective C 编写一个 iPhone 应用程序 我需要使用 NSURLConnection 发布数据 我能找到的每个例子都涉及 JSON 我不需要使用 JSON 我需要做的就是 POST 数据并从 PHP 脚本获取简
  • Java 编译速度 vs Scala 编译速度

    我已经用 Scala 编程有一段时间了 我喜欢它 但令我恼火的一件事是编译程序所需的时间 这似乎是一件小事 但使用 Java 我可以对我的程序进行一些小更改 单击 netbeans 中的运行按钮 然后 BOOM 它正在运行 随着时间的推移
  • 什么是运行时环境?

    有人可以用简单的术语解释一下这意味着什么吗 是指应用程序代码运行的环境 DOS Windows Linux 等 吗 将其与开发环境和构建环境区分开来 您往往会在这里找到层次结构 运行时环境 执行程序所需的一切 但没有工具可以更改它 构建环境
  • 如何P/Invoke“__arglist”函数?

    背景 我用 C 编写了以下函数 extern C declspec dllexport int test const char 我使用 P Invoke 从 C 调用它 DllImport foo bar dll EntryPoint te
  • 使用 GPU PyOpenCL 优化 python 代码的不同方法:内核 GPU/PyOpenCL 内的 extern 函数

    我使用以下命令来分析我的 Python 代码 python2 7 m cProfile o X2 non flat multiprocessing dummy prof X2 non flat py 然后 我可以全局可视化不同贪婪函数的重新
  • 基类中的 Autofac 属性注入

    我正在开发 Windows Phone 8 1 应用程序 并且有一个具有公共属性的基类 public class ViewModelBase public ISomeClass MyProp get set 我的派生类看起来像这样 publ