我有一个从 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(使用前将#替换为@)