我正在完成一个插件,但有一个小问题。 我正在尝试使用if。
的查找字段当我尝试使用== operator
时,没有任何反应。使用Equals() method
,我有一个例外,说object is not instantiated
......我做错了什么?
插件在创建记录时按预先操作执行。
EntityReference modeleContrat = (EntityReference)target.Attributes["new_modeldecontrat"];
throw new InvalidPluginExecutionException(modeleContrat.Name);
if (modeleContrat.Name == ("Contrat d'unité"))
{
答案 0 :(得分:3)
我假设您在问题中使用的代码是以某种方式进行测试的,因为它当前不会因为异常而运行。
您收到的错误Object not Instantiated
意味着它在锡上的含义正是如此,modeleContrat
变量中没有值。
因此代码应该更具防御性,如下所示:
EntityReference modeleContrat = (EntityReference)target.Attributes["new_modeldecontrat"];
if(modeleContrat != null && modeleContrat.Name == ("Contrat d'unité"))
{
//Do Stuff
}
至于modeleContrat
没有被实例化。由于您的插件在Pre-Create上运行,并且您正在从Target
检索属性,因此我假设您从插件上下文中取出输入参数来检索它。
这很好,但是Target
只包含在保存的记录上设置的属性。如果你没有在记录上设置它,它将为null。
答案 1 :(得分:0)
我认为“没有”意味着你期望执行的逻辑不会。在这种情况下,if语句等于false。