在Entity Framework 6中,我可以像这样获取类(myModel)的ModelMetadata:
var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, myModel.GetType());
我怎样才能在.net核心1.1.1中做同样的事情?
答案 0 :(得分:5)
ModelMetadataProvider是一个ASP.NET功能,它与Entity Framework无关。在ASP.NET Core中,您可以使用内置的DI轻松注入默认的IModelMetadataProvider
实现:
public FooController(IModelMetadataProvider provider)
{
var metadata = provider.GetMetadataForType(typeof(model));
}
答案 1 :(得分:0)
在ASP.NET Core 3.0中,有一个EmptyModelMetadataProvider
类,该类实现了DefaultModelMetadataProvider
,该类实现了抽象的ModelMetadataProvider
。我们能够简单地实例化EmptyModelMetadataProvider
并调用GetMetadataForType(typeof(MyModel))
,它将返回所需的元数据。我对此答案的特殊用途是测试自定义模型绑定程序。