Я работаю с Microsoft Graph Beta SDK в проекте .NET, где пытаюсь извлечь определенные поля из SensitivityLabelEventData внутри свойства AuditData AuditLogRecord. Однако у меня возникли проблемы с доступом к данным в SensitivityLabelEventData, которые хранятся как Microsoft.Kiota.Abstractions.Serialization.UntypedObject.
Проблемы, с которыми я столкнулся:
Доступ к свойствам: я попытался получить доступ к таким свойствам, как labelEventType и SensitivityLabelId, обрабатывая их как строки или целые числа после преобразования UntypedObject в строку, но, похоже, это неправильный подход.
Ошибка доступа к свойству: я попытался привести UntypedObject к UntypedString или UntypedInteger, чтобы получить доступ к данным напрямую, но мне не удалось получить фактические значения.
Мой вопрос: как правильно извлечь значения (например, labelEventType, SensitivityLabelId, SensitivityLabelOwnerEmail) из объекта SensitivityLabelEventData внутри AuditData? Как мне следует обрабатывать UntypedObject в этом контексте, чтобы правильно получить доступ к этим вложенным полям?
Буду очень признателен за любые рекомендации или примеры!
var autditLogRecords = gsc.Security.AuditLog.Queries[auditLog_Search_id].Records.GetAsync().GetAwaiter().GetResult();
foreach (var auditLogRecord in autditLogRecords.Value)
{
var additionalData = auditLogRecord.AuditData.AdditionalData;
var untypedObject = additionalData["SensitivityLabelEventData"] as Microsoft.Kiota.Abstractions.Serialization.UntypedObject;
if (untypedObject != null)
{
// Attempt to access properties within UntypedObject
var labelEventType = untypedObject.ToString(); // Intended to get the 'labelEventType'
var sensitivityLabelId = untypedObject.ToString(); // Intended to get the 'SensitivityLabelId'
var sensitivityLabelOwnerEmail = untypedObject.ToString(); // Intended to get the 'SensitivityLabelOwnerEmail'
// Setting parameters for SQL command
comm.Parameters.Add("@SensitivityLabelEventData_LabelEventType", SqlDbType.Int).Value = !string.IsNullOrEmpty(labelEventType) ? Convert.ToInt32(labelEventType) : DBNull.Value;
comm.Parameters.Add("@SensitivityLabelEventData_SensitivityLabelId", SqlDbType.VarChar, 36).Value = !string.IsNullOrEmpty(sensitivityLabelId) ? sensitivityLabelId : (object)DBNull.Value;
comm.Parameters.Add("@SensitivityLabelEventData_SensitivityLabelOwnerEmail", SqlDbType.NVarChar, 255).Value = !string.IsNullOrEmpty(sensitivityLabelOwnerEmail) ? sensitivityLabelOwnerEmail : (object)DBNull.Value;
}
}