如何从 C# 中的非 Public 成员获取值

How to get a value from a Non-Public member in C#

我正在尝试访问 Jira Issue 的 Sprint 的名称。自定义字段 sprint 为空,但我需要的值存在于 Non-Public 成员中。我有兴趣访问 Sprint 的名称。我尝试过使用反射,但我可能做错了什么,因为我总是得到 null。

有人可以帮助我吗?非常感谢!

更新:

到目前为止我尝试过的:

var sprint = issue.CustomFields.FirstOrDefault(field => field.Id == customFieldMapping.SprintNameId)?.Values?.FirstOrDefault()?.GetType().Attributes;

var sprint = issue.CustomFields.FirstOrDefault(field => field.Id == customFieldMapping.SprintNameId)?.Values?.FirstOrDefault()?.GetType().GetFields(BindingFlags.NonPublic);

var sprint = issue.CustomFields.FirstOrDefault(field => field.Id == customFieldMapping.SprintNameId)?.Values?.FirstOrDefault()?.GetType().GetProperties(BindingFlags.NonPublic);

var sprint = issue.CustomFields.FirstOrDefault(field => field.Id == customFieldMapping.SprintNameId)?.Values?.FirstOrDefault()?.GetType().GetMembers(BindingFlags.NonPublic);

var sprint = issue.CustomFields.FirstOrDefault(field => field.Id == customFieldMapping.SprintNameId)?.Values?.FirstOrDefault()?.GetType().CustomAttributes;

全部return无效。

这就是 .GetType() returns

对我有用:

var sprint = issue.CustomFields.GetAs<JArray>("Sprint");

var sprintName = sprint.FirstOrDefault()?.Value<JToken>("name").ToString();

来源:https://searchcode.com/file/128952287/Atlassian.Jira/CustomFieldValueCollection.cs/