亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Autofac - 單例接口解析為瞬態

Autofac - 單例接口解析為瞬態

C#
肥皂起泡泡 2021-10-09 10:42:37
我正在構建一個 WPF 應用程序并使用 Autofac 作為 IoC 容器。這個場景有點難以描述,但我會嘗試在下面給出相關的代碼:我的應用程序引導程序包含以下代碼以在我的應用程序中注冊視圖模型:builder.RegisterAssemblyTypes(assemblySource)       .Where(type => type.Name.EndsWith("ViewModel"))       .Where(type => !string.IsNullOrWhiteSpace(type.Namespace) && type.Namespace.Contains("ViewModels"))       .AssignableTo<INotifyPropertyChanged>()       .AsSelf()       .InstancePerDependency();(請注意InstancePerDependency()我必須進行的調用,因為我顯示了許多視圖實例)然后我有以下代碼來注冊開放泛型的實現者:builder.RegisterAssemblyTypes(assemblySource)       .AsClosedTypesOf(typeof(INotificationHandler<>))       .AsSelf()       .SingleInstance();為了避免將容器傳遞給我的事件調度程序,我將它傳遞給一個委托,如下所示:builder.Register<ServiceFactory>(ctx => { return t => Container.Resolve(t ); });最后一點代碼給我帶來了一個問題:它導致實現INotificationHandler接口的 ViewModels在每次調用時都創建實例,而我只需要解析一次實例,而實現這個通用接口的 ViewModels 將只有一個實例在整個應用程序中創建。問題是:如何讓 Autofac 解析實現INotificationHandler<T>接口的 ViewModel 的單個實例,同時保持其他 ViewModel 的創建PerDependency?
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 286 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號