C# 基于解析属性的热巧克力过滤器集合 公共类父类{ 公共IEnumerable子项(筛选器){ 返回新列表(){new Child()}; } } 公营儿童{ 公共字符串值(ChildrenFilter筛选器){ //可能返回null,可能返回字符串 } }
我想根据Child.Value是否不同于null筛选Parent.Children集合。 例如:。其中(child=>//child有值) 但是对于上面的代码,我似乎不能使用中间件,因为它在调用Child.Value之前运行C# 基于解析属性的热巧克力过滤器集合 公共类父类{ 公共IEnumerable子项(筛选器){ 返回新列表(){new Child()}; } } 公营儿童{ 公共字符串值(ChildrenFilter筛选器){ //可能返回null,可能返回字符串 } },c#,hotchocolate,C#,Hotchocolate,我想根据Child.Value是否不同于null筛选Parent.Children集合。 例如:。其中(child=>//child有值) 但是对于上面的代码,我似乎不能使用中间件,因为它在调用Child.Value之前运行 是否有一个钩子让我在解析完Child.Value之后应用过滤逻辑?对于我的场景,我设法插入了一个自定义序列化程序,这样我就可以在响应序列化之前访问它 此时,响应对象的格式不同,但有一点自定义逻辑,我能够过滤我需要的内容 public class Parent{ publ
是否有一个钩子让我在解析完Child.Value之后应用过滤逻辑?对于我的场景,我设法插入了一个自定义序列化程序,这样我就可以在响应序列化之前访问它 此时,响应对象的格式不同,但有一点自定义逻辑,我能够过滤我需要的内容
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
}
}
然后在启动时:
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();
我不太明白。您将Value
声明为一个方法,但将其用作属性。在热巧克力框架中,类似这样的方法是一个解析器,一旦父级解析,它就会解析。通过这种方式,我可以将过滤器传递给“属性”,它实际上是一个方法
services.AddHttpResultSerializer<CustomHttpResultSerializer>();