Я выкидываю это на тот случай, если кто-то сталкивался с этим раньше.
При создании DesignData для использования в конструкторе WPF я получаю одну из двух ошибок:
Объект не соответствует типу цели.
в System.Reflection.RuntimeMethodInfo.CheckConsistency (Object
мишени)
(СНИП)
в Microsoft.Expression.DesignModel.InstanceBuilders.ClrObjectInstanceBuilder. UpdateProperty (IInstanceBuilderContext
контекст, ViewNode ViewNode, IProperty
propertyKey, DocumentNode valueNode)
Другой немного более информативен:
Значение "_.di0.MyProjectLol.MyType"
не относится к типу "MyProjectLol.MyType"
и не может быть использован в этом родовом
коллекция.
в
System.ThrowHelper.ThrowWrongValueTypeArgumentException (Объект
значение, тип targetType)
(СНИП)
в Microsoft.Expression.DesignModel.InstanceBuilders.ClrObjectInstanceBuilder.
InstantiateChildren (IInstanceBuilderContext
контекст, ViewNode ViewNode,
DocumentCompositeNode CompositeNode,
Boolean isNewInstance)
При отладке я вижу, что есть динамическая сборка, загруженная типами прокси-серверов, которые выглядят как мои, но, очевидно, таковыми не являются. Эта сборка называется Blend_RuntimeGeneratedTypeAssembly (здесь идет Guid). При попытке загрузить типы в этой сборке он выдает исключение загрузки типов для ряда из них. Таким образом, некоторые типы проксируются, некоторые типы остаются такими, как нам и Богом, и когда они смешиваются, происходят неестественные действия.
Например, тип «Foo» может создать прокси, но другие типы этого не делают (TypeLoadExceptions). Затем дизайнер пытается передать один из моих настоящих типов прокси-серверу (чему помогает тот факт, что сериализация xaml любит преобразовывать коллекции в IList, таким образом, не обращая внимания на безопасность типов), и вы получаете одно из вышеуказанных исключений.
Я потратил пол недели, пытаясь это исправить. Я пробовал сотни разных вещей, но я не могу понять, что именно приводит к его провалу. Предложения приветствуются, TIA.