首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp.net web 2中添加自定义模型元数据提供程序

在asp.net web 2中添加自定义模型元数据提供程序
EN

Stack Overflow用户
提问于 2014-12-10 19:49:53
回答 2查看 1.4K关注 0票数 1

我试图在web 2中注册一个自定义模型元数据提供程序。

就像页面说的,我应该打电话给

代码语言:javascript
复制
config.Services.Add(typeof (ModelMetadataProvider), new CustomModelMetadataProvider());

但是有了这个,我得到了以下错误

不支持服务类型ModelMetadataProvider。参数名称: serviceType

EN

回答 2

Stack Overflow用户

发布于 2017-03-19 10:18:01

有点晚了,但是内部附加到HttpConfiguration的HttpConfiguration集合有两组服务附加到它,多个(可以有多个实现注册)和单个(只能有一个实现)。

ModelMetadataProvider是一种只能注册单个实现的服务类型。调用Add将尝试添加一个已经存在的附加实现,因此可以调用Replace。

代码语言:javascript
复制
config.Services.Replace(typeof(ModelMetadataProvider), new CustomModelMetadataProvider());
票数 2
EN

Stack Overflow用户

发布于 2015-03-07 22:58:23

您可以通过在依赖项解析器容器中注册替换服务来覆盖ModelDataProvider。然后Web将使用它而不是默认的DataAnnotationsModelMetadataProvider。

但是,您在自定义元数据提供程序中所能做的事情是有限的。在大多数应用程序中,元数据缓存对于性能非常重要,ModelMetadata的基本实现将标记成员作为内部成员,这对于缓存至关重要。微软似乎不打算对此功能进行自定义。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27409606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档