私は、役割が単純なカスタム マークアップ拡張機能に取り組んでいます。
拡張コンストラクター パラメーター (型) で 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 update 2)
または、Xaml デザイナーが間違ったアセンブリを探しているだけです。
これを修正する方法についてのアイデア、またはこの問題に対する他の見解はありますか?
お時間を割いていただき、誠にありがとうございました。