为什么在 Web api 方法中返回接口时,我会得到带有接口值的继承类的值?

2024-02-18

我有一个从 Interface 继承的类,并且我从我的 web api get methed 返回接口,问题是我将继承类的值作为 json 字符串获取。

这是界面

 public interface IFoo
    { 
    string A { get ;set ; } 
    string B { get ; set ; } 
    } 

继承类

 public class Child : iFoo
    { 
    string A { get ; set ; } 
    string B { get ; set ; } 
    string C { get ; set ; } 
    string D { get ; set ; } 
    } 

然后我从控制器的 GetMethod 返回 IFoo

 public IFoo GetIFoo()
        {
        return  ChildInstance ; 
        }

当前结果为我提供了继承类和接口的所有值,但我只想要在 json 结果中的接口中实现的值。


当它到达 Json 序列化器时,它并不关心方法的返回类型是什么。它只知道“我有这个对象,让我们看看我能用它做什么”。

如果您希望序列化程序仅包含您的接口所具有的属性,则最好为其提供一个仅具有您的接口所具有的属性的对象。您可以考虑使用例如自动映射器复制值ChildInstance到这个新对象。

另一种方法更复杂 - 实现您自己的序列化器,以便 Json 序列化器没有机会参与其中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在 Web api 方法中返回接口时,我会得到带有接口值的继承类的值? 的相关文章

随机推荐

  • 如何修复轮询时的 Cucumber 期望错误?

    我有帮手sign in登录用户 我正在尝试使用一种新方法来确保用户使用轮询登录 def sign in user password 111111 click button sign in btn eventually 5 page shou
  • 在plsql中编写函数

    我正在查询数据库 需要解析其中一个字段以获取特定值 使用字符串函数 所以我认为最好为其编写一个函数 我以前从未在 plsql 中编写过函数 所以我决定看一些示例 我得到了一个简单的 square 函数的副本 它接受一个数字并返回它的平方 但
  • 通过 DBRef 数组查找文档

    解决方案可能就在我面前 但我还没有找到它 我的问题是我需要查找包含指定 DBRef 的所有文档 这是要搜索的集合的结构 id ObjectId 4e2d4892580fd602eb000003 date added ISODate 2011
  • Ruby 有哪些 Python 没有的功能,反之亦然?

    Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 关于 Python 与 Ruby 的讨论有很多 我都发现它们完全没有帮助 因为它们都围绕着为什
  • 如何使用 Django / Python 从 RESTful Web 服务中使用 XML?

    我应该使用 PyXML 还是标准库中的内容 ElementTree 作为标准 Python 库的一部分提供 ElementTree 是纯 python 而 cElementTree 是更快的 C 实现 Try to use the C im
  • 如何在 WiX 片段中获得编辑注册表 CLSID 的提升权限

    我正在尝试将 Windows 桌面搜索设置为使用系统默认过滤器 nlhtml dll 之外的不同 html 过滤器 当我查找 PersistentHandler 时 HKEY LOCAL MACHINE SOFTWARE Classes h
  • ASP.NET Core MVC 视图组件

    在 ASP NET Core MVC 以前称为 MVC 6 中 有一个称为视图组件的新功能区域 它似乎是部分视图的更好替代方案 我看过以下内容查看组件示例 http www asp net vnext overview aspnet vne
  • 在 AppDelegate 之外使用 NIB 创建 UITabBarController?

    对于 iOS 编程来说 我还是个新手 尽管进行了大量的研究 但我还是遇到了另一个障碍 我想要实现的 我想要一个当我从主 UI 导航时加载的 UITabBarController 我还想使用 NIB 来定义其属性 我能找到的所有示例都将 UI
  • Gstreamer视频输出位置跟踪和寻找

    我正在使用 gstreamer gst launch 捕获相机并将流保存为视频和图像帧 管道的问题是 当管道完成 通过中断 视频记录时 它不能支持位置跟踪和查找 因此 视频在 vlc 播放器中播放 长度未知 我认为问题出在管道本身 如何实现
  • 支持内容脚本中的所有 google 域

    我正在制作一个内容脚本 对谷歌结果网页执行某些操作 下面的行在manifest json无效 匹配 https www google 由于清单 json 中的上述行而导致的错误是 content scripts 0 matches 0 的值
  • 在EJB环境中是否有一些行为类似于.wait()和.notify()的东西?

    我知道我不能修改 EJB 容器中的线程 因此我不知道如何在 EJB 环境中以正确的方式执行以下操作 涉及的有 无状态会话 Bean 客户端 无状态会话 Bean 服务器 消息队列 队列 消息驱动 Bean Mdb 处理来自 队列 的消息 n
  • 如何将资源编译到我的应用程序中并访问它们?

    我怎样才能制作一个executable包含 DLL 和图像资源文件的软件包 那么如何在运行时从可执行文件中提取它们呢 使用 IDE 的选项 1 Delphi 2007 或更高版本 您可以单击 项目 菜单 然后选择 资源 您可以将任何文件加载
  • CodeMirror - 从编辑器外部获取 linting 结果

    我正在使用非常棒的 CodeMirror 库 我正在实例化的代码编辑器是表单的一部分 因此我想使用 linting 进行基本检查 以查看用户的输入是否有效 除非代码没问题 否则我不想处理表单 所以问题是 CodeMirror 编辑器实例上是
  • GLKit 和向纹理添加色调

    我在使用 GLKit 对 PNG 图像着色时遇到问题 我有一个白色的 PNG 图像 我将其加载到应用程序中 然后用它来创建纹理 UIImage image UIImage imageNamed brushImage NSError erro
  • 角度错误:StaticInjectorError(平台:核心)[e -> t]:

    当我构建APK时 prod我收到以下错误 ERROR Error StaticInjectorError e gt t StaticInjectorError Platform core e gt t NullInjectorError N
  • 有没有办法限制 javascript 性能来模拟缓慢的客户端

    我正在开发一个使用 jQuery 的网站 并且有大量使用 javascript 运行的网站 document ready 在我的开发机器上 一切运行良好 但它是一台非常强大的机器 我收到过一些使用旧硬件的人的报告 这些硬件的行为看起来很奇怪
  • 包装类的声明[重复]

    这个问题在这里已经有答案了 这个问题是一个问题的延续如何使用 来初始化字符串 https stackoverflow com questions 17489250 how can a string be initialized using
  • 在什么类型的循环中最好使用 CUDA 中的 #pragma unroll 指令?

    在 CUDA 中 可以使用以下方法展开循环 pragmaunroll 指令通过增加指令级并行性来提高性能 这 pragma可以选择后跟一个数字 指定必须展开循环的次数 不幸的是 文档没有给出何时应使用该指令的具体指示 由于编译器已经展开了具
  • Google 表格中的 ArrayFormula 和“AND”公式

    在 Google Sheets 中 当将 ArrayFormula 与 AND 公式一起使用时 我没有得到应有的结果 A B 6 7 In C1我把公式写为 and A1 gt 5 B1 gt 6 然后我得到True 如果在 D1 中我输入
  • 为什么在 Web api 方法中返回接口时,我会得到带有接口值的继承类的值?

    我有一个从 Interface 继承的类 并且我从我的 web api get methed 返回接口 问题是我将继承类的值作为 json 字符串获取 这是界面 public interface IFoo string A get set