如何从 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/
我正在尝试访问 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/