разрушение серилога - смешанные типы - PullRequest
2 голосов
/ 21 марта 2019

У меня есть класс Response, где Data тип в основном сложный тип типов SI, таких как Voltage, Current и т. Д.

public class Response
{
   string Name { get; }
   object Data { get; }
   ctor(...) {}

}

public class Voltage {
   double NumberValue { get; }
   ...
}


public class Number {
   bool NumberValue { get; }
   ...
}

public class Text {
   string TextValue { get; }
   ...
}

Если я уничтожу его, используя {@Response}, и сохраню его в упругом поиске, эти типы будут взрываться должным образом без какого-либо столкновения типов, то есть A Voltage будет разрушаться, как Response.Data.NumberValue (числовое), а Text разрушит до Response.Data.TextValue (текст).

Однако иногда также возможно, что Data может быть просто int или string. В этих случаях он будет разрушен до Response.Data (длинный) и Response.Data (текст). Что вызывает проблемы в упругом поисковом индексе.

Мне интересно, могу ли я использовать метод IDestructuringPolicy s TryDestructure() для пользовательского уничтожения класса Response. Я бы хотел, чтобы int также уничтожил до Response.Data.NumberValue.

...