簡體   English   中英

解決的問題:Unity中的ActionFilterAttribute

[英]Resolving issue: ActionFilterAttribute in Unity

我發現此博客文章: http ://blog.bitdiff.com/2012/05/sharing-common-view-model-data-in.html?showComment=1499113088147#c5286707438454380380796關於在ASP中共享強類型的通用視圖模型數據.net mvc,在我看來,它可以解決我在跨視圖跟蹤某些用戶相關數據時遇到的問題。

對於DI和Unity,我是一個完全的新手,因為我以前從未使用過它,但是我對使用它的好處有所了解。 該帖子來自2012年5月,但據我所知應該仍然有效,也許會有一些小的更改。

我正在將C#,MVC 5,EF,代碼優先,遷移,Unity V4.01和Unity.MVC V4.01與VS2015社區版一起使用。

我從頭到尾都遵循了該博文(幾乎沒有進行測試),並進行了所有編譯。 我有一個問題,但此行會導致問題:

GlobalFilters.Filters.Add(container.Resolve<LayoutModelAttribute>(), 1);

據我所知,正確的呼叫地點是在App_start文件夾中的FilterConfig.cs文件中,在此位置,我已經做到了:

    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        var container = UnityConfig.GetConfiguredContainer();
        filters.Add(container.Resolve<LayoutModelAttribute>());
    }

container.Resolve在其下方有一條彎曲的線,因此該項目無法編譯。 錯誤描述是這樣的:

“非泛型方法'IUnityContainer.Resolve(Type,string,params ResolverOverride [])'不能與類型參數一起使用”

我也嘗試過其他地方,但是結果是一樣的,我現在傾向於Unity本身自2012年以來就發生了變化,現在必須以不同的方式解決。

我敢肯定我做錯了事,而且正確無誤是因為博客文章來自2012年,而Unity現在以不同的方式工作。 由於缺乏對Unity的經驗,我無法弄清楚如何更改無法編譯的代碼行或進行擴展,以及在必要時如何重構博客文章。

我希望外面有人可以指出正確的方向。

似乎您使用的容器沒有注入功能。 看看下面的答案動作過濾器上的簡單注入器屬性注入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM