我正在使用ODataConventionModelBuilder来为Web API OData服务构建Edm模型,如下所示:
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.Namespace = "X";
builder.ContainerName = "Y";
builder.EntitySet<Z>("Z");
IEdmModel edmModel = builder.GetEdmModel();
Z 类位于一个程序集中,并且公共(public)类 Q 派生自位于不同程序集中的 Z 。
ODataConventionModelBuilder将生成 Edm模型,该包括类 Q的定义Q (以及其他派生类),并且它将与服务元数据一起公开。在我们的情况下,这是不可取的。
当派生类无法访问(例如定义为内部)时,这种问题肯定不存在。
有没有办法强制ODataConventionModelBuilder不自动公开所有派生类型的元数据?
最佳答案
这应该工作:
ODataConventionModelBuilder builder = new ODataConventionModelBuilder();
builder.Namespace = "X";
builder.ContainerName = "Y";
builder.EntitySet("Z");
builder.Ignore<Q>();
IEdmModel edmModel = builder.GetEdmModel();
关于c# - 如何防止ODataConventionModelBuilder自动公开所有派生类型的元数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26257993/