public class Parent{
public IEnumerable<Child> Children(Filters filter){
return new List<Child>() { new Child()};
}
}
public class Child{
public string Value(ChildrenFilter filter){
// Maybe return null, maybe return a string
}
}
我想根据 Child.Value 是否不同于 null 来过滤 Parent.Children 集合。 例如:.Where(child => // child has Value);
但是对于上面的代码,我似乎无法使用中间件,因为它在调用 Child.Value 之前运行。
在 Child.Value 解析后,是否有一个钩子可以让我应用过滤逻辑?
答案 0 :(得分:0)
对于我的场景,我设法插入了自定义序列化程序,因此我可以在序列化之前访问响应。
此时,响应对象采用不同的格式,但通过一些自定义逻辑,我能够过滤我需要的内容。
internal class CustomHttpResultSerializer : DefaultHttpResultSerializer
{
public override ValueTask SerializeAsync(IExecutionResult result, Stream stream, CancellationToken cancellationToken)
{
var queryResult = result as QueryResult;
// Remove any unwanted results
return base.SerializeAsync(result, stream, cancellationToken);
}
}
然后在启动时:
services.AddHttpResultSerializer<CustomHttpResultSerializer>();