私は、ASP.NET Core MVC
プロジェクトのデータアクセスレイヤにできるだけ簡単にキャッシュを実装しようとしています。主な問題は、すべてのページのキャッシュから、一部のページだけを読み込みたくないということです。私はAutofac.Extras.AttributeMetadataパッケージは、ASP.NET MVCのコアASP.NET Core MVCのコントローラの属性に基づいて依存関係を解決する方法
を知っ
[UseCache] public class ControllerA : Controller { public ControllerA(IBuilder builder) { // Should resolve an IBuilder with a CacheService } } public class ControllerB : Controller { public ControllerB(IBuilder builder) { // Should resolve an IBuilder with a NullCacheService } } public class Builder : IBuilder { public Builder(ICacheService cacheService) { // The type of the resolved ICacheService depends on the UseCache // attribute on any of the object that depends on this IBuilder } } public class CacheService : ICacheService { public Object Get(string key, Func<Object> getValue) { // Check if the value is cached against Key and return it if it's not // Obviously needs a lot more here regarding caching timeframes, expiry etc } } public class NullCacheService : ICacheService { public Object Get(string key, Func<Object> getValue) { // Don't do anything with key, just do the work in getValue and return it } } public class UseCacheAttribute : Attribute { }
:以下の例では、我々が持っているセットアップの種類を説明する必要があります
サポートされていても、このオブジェクトを含むオブジェクトの属性検出をサポートする方法はわかりません。
私たちがAutofacまたはデフォルトのIoC implementionに結び付けられていない、新しいのIoCフレームワークを紹介してうれしいです。
達成しようとしていることはありますか?何がより良いキャッシングソリューションと考えられるでしょうか?
[Autofac.Extras.AttributeMetadata v4.0.1リリースノート](https://github.com/autofac/Autofac.Extras.AttributeMetadata/releases/tag/v4.0.1)には、「Autofac.Features」を使用できます。 AttributeFilters'は.net coreでサポートされています。 – Sakis
@Sakisこれは当てはまりますが、私が知る限り自分の属性を使用することはできません。これはAttributedMetadataModule [Autofac.Extras.AttributeMetadata](https://autofac.org/apidocにあります)を登録する必要があります。 /html/D6EFF2D8.htm)、それは.NETコアに移植されません。 –