Редактирование данных в С#: как избежать регистрации свойства записи?C#

Место общения программистов C#
Ответить
Anonymous
 Редактирование данных в С#: как избежать регистрации свойства записи?

Сообщение Anonymous »

Мы пытаемся реализовать редактирование данных.
Есть также интересная запись в блоге от Эндрю Лока: Behind [LogProperties] и новый генератор источников журналирования телеметрии
Он отлично работает для классов (и записей без свойств, как в сообщении блога), и данные не отображаются в журналах:

Код: Выделить всё

public class DummyClass()
{
[MyTaxonomyClassifications.PrivateInformation]
public string Name { get; private set; } = "confidential";

public int Age { get; private set; } = 42;
}
Но когда я пытаюсь сделать то же самое, используя запись, я не могу скомпилировать:

Код: Выделить всё

public record DummyRecord()
{
// cannot compile LogExtension.LogPrivateDummyRecord. error:
// Partial method 'LogExtension.LogPrivateDummyRecord(ILogger, DummyRecord)' must have an implementation part because it has accessibility modifiers.
[MyTaxonomyClassifications.PrivateInformation]
public string Name { get; private set; } = "confidential";

public int Age { get; private set; } = 42;
}
Это компилируется, но не работает (свойство все еще находится в журналах):

Код: Выделить всё

public record DummyRecord()
{
[field: MyTaxonomyClassifications.PrivateInformation]
public string Name { get; private set; } = "confidential";

public int Age { get; private set; } = 42;
}
Это код того, как мы регистрируем данные:

Код: Выделить всё

public static partial class LogExtension
{
[LoggerMessage(0, LogLevel.Warning, "DummyClass: {Data}")]
public static partial void LogPrivateDummyClass(
this ILogger logger,
[LogProperties]
DummyClass Data);

[LoggerMessage(0, LogLevel.Warning, "DummyRecord: {Data}")]
public static partial void LogPrivateDummyRecord(
this ILogger logger,
[LogProperties]
DummyRecord Data);
}
Так чего же нам здесь не хватает? Как мы можем использовать редактирование для свойства записи?

Подробнее здесь: https://stackoverflow.com/questions/798 ... d-property
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»