Я пытаюсь проверить типы в сборке silverlight 4 из приложения .NET 3.5. Я загрузил сборку Silverlight с предложением Assembly.ReflectionOnlyLoadFrom.
contractsAssembly = Assembly.ReflectionOnlyLoadFrom(contractsAssemblyPath);
Когда приложение .NET пытается выполнить вызов GetTypes (), оно генерирует исключение ReflectionTypeLoadException.
Type[] types = contractsAssembly.GetTypes();
Свойство LoaderExceptions в ReflectionTypeLoadException содержит список исключений, все они касаются проблемы загрузки типа с атрибутами сериализации.
Тип «XXXX» в сборке «YYYY» имеет метод «OnSerializing» с неверной подписью для атрибута сериализации, которым он оформлен.
Тип XXXX содержит следующие определения:
[System.Runtime.Serialization.OnSerializing]
public void OnSerializing(System.Runtime.Serialization.StreamingContext context)
[System.Runtime.Serialization.OnSerialized]
public void OnSerialized(System.Runtime.Serialization.StreamingContext context)
[System.Runtime.Serialization.OnDeserializing]
public void OnDeserializing(System.Runtime.Serialization.StreamingContext context)
[System.Runtime.Serialization.OnDeserialized]
public void OnDeserialized(System.Runtime.Serialization.StreamingContext context)
Я попытался изменить подпись метода на внутреннюю или личную, но безуспешно. Когда я выполняю вызов GetTypes () в приложении silverlight, которое проверяет эту сборку, у меня нет проблем, поэтому я подумал, что это связано с несовместимостью .NET Framework и Silverlight. Однако я вижу, что инструменты .NET, такие как Reflector, могут проверять эту сборку Silverlight, поэтому есть способ проверять сборки Silverlight с атрибутами сериализации из приложения .NET. Может ли кто-нибудь пролить мне свет на это?
Большое спасибо заранее.
Хосе Антонио