У меня есть XML-строка, которую я хотел бы десериализовать в строго типизированный класс. Приведенный ниже код работает отлично, пока я не помещу его в изолированный плагин, после чего я получаю ошибку FileIOPermissions, потому что я использую класс StringReader. У меня возникают проблемы с десериализацией без использования StringReader. Кто-нибудь есть хорошая альтернатива?CRM 2013: десериализация в изолированном плагине
byte[] binary = Convert.FromBase64String(configurationWebResource.Attributes["content"].ToString());
resourceContent = UnicodeEncoding.UTF8.GetString(binary);
DataContractSerializer serializer = new DataContractSerializer(typeof(ViewSecurityConfiguration));
using (StringReader reader = new StringReader(resourceContent))
{
using (XmlTextReader xmlReader = new XmlTextReader(reader))
{
if (serializer.IsStartObject(xmlReader)) //Throws FileIOPermissions error
{
currentViewSecurityConfiguration = (ViewSecurityConfiguration)(serializer.ReadObject(xmlReader));
}
}
}
К сожалению, я не могу использовать класс XmlSerializer, потому что мой класс ViewSecurityConfiguration использует IDictionary. Вместо того, чтобы переписывать мою реализацию для работы с XmlSerializer, я думаю, что найду или напишу специальный универсальный класс Xml Serializing. Несмотря на это, я думаю, что это, по сути, ответ на мой вопрос, поскольку он показывает, как разработчики обычно десериализуются в изолированном плагине. – Zach