我正在开发一个自定义标记扩展,其作用很简单:
在扩展构造函数参数(类型)上使用 System.Activator 并实例化它。
public class MyExtension : MarkupExtension
{
private readonly Type _myType;
public MyExtension (Type param)
{
_myType= param;
}
public override object ProvideValue(IServiceProvider serviceProvider)
{
return Activator.CreateInstance(_myType);
}
}
在运行时,此扩展按预期运行。
但是在设计时,激活类型时会引发异常。
我已经深入寻找源头,并抓住了鲸鱼:
try
{
return Activator.CreateInstance(_myType);
}
catch (TypeInitializationException ex)
{
}
所以我循环了这个:
(ex.InnerException as ReflectionTypeLoadException).LoaderExceptions[i].Message);
并检索到以下消息
找不到 Windows 运行时类型“Windows.ApplicationModel.Core.IFrameworkView”。
找不到 Windows 运行时类型“Windows.ApplicationModel.Core.IFrameworkViewSource”。
由于我的代码在运行时运行良好,我唯一的猜测是 VS(.NET 4.5.1 上的 2013 更新 2)
或者 Xaml 设计器只是在寻找错误的程序集。
关于如何解决这个问题的任何想法,或者任何其他关于这个问题的想法,也许?
非常感谢您抽出宝贵时间。