簡體   English   中英

在ASP.NET Web API 2中添加自定義模型元數據提供程序

[英]Adding custom model metadata provider in asp.net web api 2

我正在嘗試在Web API 2中注冊自定義模型元數據提供程序。
正如此頁面所述 ,我應該打電話

config.Services.Add(typeof (ModelMetadataProvider), new CustomModelMetadataProvider());

但是與此同時我得到以下錯誤

不支持服務類型ModelMetadataProvider。 參數名稱:serviceType

這次聚會晚了一點,但是HttpConfiguration附帶的DefaultServices集合在內部附加了兩組服務:Multiple(可以注冊多個實現)和Single(只能具有單個實現)。

ModelMetadataProvider是一種服務類型,只能注冊一個實現。 調用Add嘗試向已有的實現添加其他實現,因此請調用Replace。

config.Services.Replace(typeof(ModelMetadataProvider), new CustomModelMetadataProvider());

您可以通過在依賴解析器容器中注冊替換服務來覆蓋ModelDataProvider。 然后,Web API將使用它代替默認的DataAnnotationsModelMetadataProvider。

但是,您在自定義元數據提供程序中只能做些限制。 元數據的緩存對於大多數應用程序的性能至關重要,並且ModelMetadata的基本實現具有標記成員,這些成員對於緩存至關重要,如INTERNAL。 Microsoft似乎不打算自定義此功能。

暫無
暫無

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

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