我想使用 ServiceStack 的内置反序列化反序列化 post 变量。但是,我想进行两项更改,以便为我尝试解决的另一个问题提供一些灵活性。
[Route("/MyObject/{Property}", "POST")]
OtherRoutes...
public class MyObject:IReturn<MyObjectResponse>{
public string Property{ get; set; }
public object Dto{ get; set; }
Other properties...
}
public class CommodityType{
public int Id{ get; set; }
public string CommodityTypeName{ get; set; }
}
如果 post 变量类名与 {Property} 匹配,我想创建该 DTO 类并将其存储在 Dto 对象中。我希望其他所有内容都能正常反序列化。
例如,如果我发布到:“example.com/API/MyObject/CommodityType”以下 json:
{
"CommodityType":{
"Id": 1,
"CommodityTypeName": "Commercial Services"
}
}
if(MyObject.Property == POST.ObjectName){
// in this example Post.ObjectName = "CommodityType"
// Use Reflection to create object of type MyObject.Property
// Deserialize into the object created by reflection
// MyObject.Dto = Deserialized object
}
这是我可以使用请求和响应过滤器的情况吗?我应该创建一个自定义请求活页夹吗?还有另一种方法可以解决这个问题吗?