我正在创建 API,需要提供部分响应等功能。我知道在部分响应中,客户端/用户需要在控制器方法中传递 require 参数。但我的情况有点不同。我需要根据名为的参数名称创建部分响应package
。
例如,
[Serializable]
[DataContract]
public class Class1
{
[DataMember]
public double? prop1 { get; set; }
[DataMember]
public string prop2 { get; set; }
[DataMember]
public DateTime? prop3 { get; set; }
[DataMember]
public double? prop4 { get; set; }
[DataMember]
public double? prop5 { get; set; }
[DataMember]
public double? prop6 { get; set; }
[DataMember]
public double? prop7 { get; set; }
[DataMember]
public double? prop8 { get; set; }
[DataMember]
public double? prop9 { get; set; }
[DataMember]
public double? prop10 { get; set; }
}
所以,上面Class1
是我的基类,称为premium
package
. 现在,Gold
package
我想要一些来自Class1
喜欢prop1
的财产prop4
。所以我的代码会是这样的。
switch (`package`)
{
case "Premium":
Fill the all properties of class1
break;
case "Gold":
Fill the few properties of class1
break;
case "Silver":
Fill the few properties of class2
break;
default:
//TODO
break;
}
因此,基于packages
,我想返回我的回复。但作为回应,我只想添加那些包含在package
. 那么有没有办法根据条件动态忽略类属性?
甚至Ignoremember
会JSONIgnore
解决我的问题。但为此我需要为不同package
的 s 创建不同的类,我不想这样做。
Null
值是可以接受的。