CRM Online の試用版テナントでクライアント用のプラグインを作成しています (最新のパッチなどがあると仮定します) が、これまでに見たことのないエラーに遭遇しました。一般的に言えば、コードを明確にするために、次の行に沿って拡張メソッドを常に使用します。
public static void AddOrUpdate(this Entity e, string propertyName, object value)
{
if (e.Attributes.Contains(propertyName))
{
e.Attributes[propertyName] = value;
}
else
{
e.Attributes.Add(propertyName, value);
}
}
そこに非常に物議を醸すものは何もないと思いますか?とにかく、何らかの理由でこのクライアントのプラグインの一部としてクラス ファイルを含めると、次のエラーがスローされます。
Unhandled Exception: System.ServiceModel.FaultException`1
System.TypeLoadException: Microsoft Dynamics CRM has experienced an error. Reference number for administrators or support: #9A0442A7
[foo.bar.Plugins: foo.bar.Plugins.TrackActivity]
[6ed535ec-c7a8-e211-858f-3c4a92dbdc37: foo.bar.Plugins.TrackActivity: Create of task]
プラグインが実行されていないことを示すトレースは含まれていません (コードの最初の行が例外をスローしている場合でも!)。
少し掘り下げてみたところ、少なくともこのクライアント/インスタンスについては次のように思われますpublic static class Foo
。エラーが生成され、プラグイン自体は実行されません (コードの前に例外が発生します)
System.TypeLoadException
以前にこのようなことを見た人や、例外についての洞察を持っている人はいますか?