首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重用graphql-dotnet字段之间的公共逻辑

重用graphql-dotnet字段之间的公共逻辑
EN

Stack Overflow用户
提问于 2021-07-21 06:50:38
回答 1查看 31关注 0票数 0

如果之前有人问过这个问题,我很抱歉,但我想问的是如何在graphql-dotnet类型的类中重用字段之间的特定逻辑?

例如

代码语言:javascript
复制
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;
                ...

                .....
            });

同样的逻辑也需要在所有地方使用,

代码语言:javascript
复制
Field<SomeEncloserType>(
            name: "anotherfield",
resolve: context =>
            {
                var requestName = context.Path.First().ToString();
                var vibrancySettings = (VibrancySettings)context.Variables.ValueFor(requestName);

在字段解析器之外像变量一样计算valueSharedBetweenSomeAndAnotherField的正确方法是什么,这样我就可以只计算一次,然后直接在某个字段和另一个字段的类型解析器中重用它?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-08-25 14:36:36

您可以将获取该信息的逻辑移到另一个方法中,并从两个位置调用它,

代码语言:javascript
复制
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;
}

现在,您只需从其他地方调用它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68462178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档