如果之前有人问过这个问题,我很抱歉,但我想问的是如何在graphql-dotnet类型的类中重用字段之间的特定逻辑?
例如
public MyClassType()
{
Name = "MyClassType";
Field<SomeEncloserType>(
name: "somefield",
resolve: context =>
{
var requestName = context.Path.First().ToString();
var vibrancySettings = (VibrancySettings)context.Variables.ValueFor(requestName);
var otherSettings = vibrancySettings.SomeOtherSettings;
var valueSharedBetweenSomeAndAnotherField = otherSettings.SomeCalcProperty;
...
.....
});同样的逻辑也需要在所有地方使用,
Field<SomeEncloserType>(
name: "anotherfield",
resolve: context =>
{
var requestName = context.Path.First().ToString();
var vibrancySettings = (VibrancySettings)context.Variables.ValueFor(requestName);在字段解析器之外像变量一样计算valueSharedBetweenSomeAndAnotherField的正确方法是什么,这样我就可以只计算一次,然后直接在某个字段和另一个字段的类型解析器中重用它?
谢谢!
发布于 2021-08-25 14:36:36
您可以将获取该信息的逻辑移到另一个方法中,并从两个位置调用它,
public static TypeOfSomeOtherCalc GetSomeOtherCalc(IResolveContext context)
{
var requestName = context.Path.First().ToString();
var vibrancySettings = (VibrancySettings)context.Variables.ValueFor(requestName);
var otherSettings = vibrancySettings.SomeOtherSettings;
var valueSharedBetweenSomeAndAnotherField = otherSettings.SomeCalcProperty;
return valueSharedBetweenSomeAndAnotherField;
}现在,您只需从其他地方调用它。
https://stackoverflow.com/questions/68462178
复制相似问题