Я работаю со списком шрифтов, которые я сериализую и десериализую, используя DataContractSerializer
. Между двумя шагами возможно, что пользователь удалил шрифт со своего компьютера. Я хотел бы проверить имя шрифта, поскольку он десериализован, чтобы убедиться, что он все еще существует в системе. Если он не существует, этот элемент не включается в коллекцию, возвращаемую DataContractSerializer.ReadObject()
.
В частности, я храню FontFamily
и сериализую свойство, которое получает FontFamily.Name
. В наборе доступа этого свойства я преобразовываю строку обратно в FontFamily
.
Единственная разумная альтернатива валидации, о которой я могу подумать, - это чтобы метод доступа set свойства игнорировал недопустимые значения и позже отфильтровывал недействительные десериализованные объекты. Однако мне не нравится этот вариант - есть ли более правильный путь?