Мне интересно, есть ли возможный способ использовать System.Text.Json для сериализации объекта Link в виде строки, если определенный набор условий истинен (просто записать одну строку в записывающее устройство) и записать в записывающее устройство весь объект по умолчанию, если условие неверно.
Я пробовал использовать это решение: Как использовать сериализацию по умолчанию в пользовательском System.Text.Json JsonConverter?, который все еще работает над скриптом кода, но не работает для моей реализации, и я не совсем понимаю, почему.
Кто-нибудь знает, как я могу это отладить или лучший способ сделать конечно, Link : Entity объекты могут иногда сериализоваться в строки?
При этом я получаю следующую ошибку:

(в этом случае я даже пытался добавить полученный по умолчанию ctor в
ModifiedOptions)
Несмотря на это, он говорит, что для класса Link нет данных.
Я также пробовал добавить атрибут JsonSerializeable непосредственно в класс Link.< /p>
Ошибка:
Метаданные для типа «ActivityPub.Types.Link» не были предоставлены сериализатору. Используемый метод сериализатора не поддерживает создание метаданных типов, связанных с сериализацией, на основе отражения. При использовании генерации исходного кода убедитесь, что все корневые типы, переданные сериализатору, указаны с помощью JsonSerializableAttribute, а также все типы, которые могут быть сериализованы полиморфно
Моя библиотека базового кода: https://github.com/Meep-Tech/ActivityHu ... ialization
Тестовый код:
static void Main(string[] args) {
Settings.DefaultContext = new Link("ActivityPub.Net.Testing");
var testObject = new Object {
Type = "Test",
At = new Link("/terry") {
Rels = new string[] {
"test",
"test2"
}
},
Attribution = "/meep",
Audience = new Link("/all") {
Rel = "test"
}
};
string json = testObject
.Serialize();
System.IO.File.WriteAllLines(
"test.json",
new[] { json }
);
Object @object = json.DeSerializeEntity();
System.IO.File.WriteAllLines(
"test1.json",
new[] { @object.ToString() }
);
}
Подробнее здесь: https://stackoverflow.com/questions/702 ... ditionally
Мобильная версия