我试图在web 2中注册一个自定义模型元数据提供程序。
就像页面说的,我应该打电话给
config.Services.Add(typeof (ModelMetadataProvider), new CustomModelMetadataProvider());但是有了这个,我得到了以下错误
不支持服务类型ModelMetadataProvider。参数名称: serviceType
发布于 2017-03-19 10:18:01
有点晚了,但是内部附加到HttpConfiguration的HttpConfiguration集合有两组服务附加到它,多个(可以有多个实现注册)和单个(只能有一个实现)。
ModelMetadataProvider是一种只能注册单个实现的服务类型。调用Add将尝试添加一个已经存在的附加实现,因此可以调用Replace。
config.Services.Replace(typeof(ModelMetadataProvider), new CustomModelMetadataProvider());发布于 2015-03-07 22:58:23
您可以通过在依赖项解析器容器中注册替换服务来覆盖ModelDataProvider。然后Web将使用它而不是默认的DataAnnotationsModelMetadataProvider。
但是,您在自定义元数据提供程序中所能做的事情是有限的。在大多数应用程序中,元数据缓存对于性能非常重要,ModelMetadata的基本实现将标记成员作为内部成员,这对于缓存至关重要。微软似乎不打算对此功能进行自定义。
https://stackoverflow.com/questions/27409606
复制相似问题