我为 Dynamics NAV/BC 创建了一个简单的控件加载项,但遇到了一些问题。我在这个插件中所做的完全一样(据我所知),就像我在以前创建的相同类型的插件中所做的一样,它们工作得很好。
问题是,当插件程序集被添加到页面时(我个人对这部分了解不多,只是边看边做),假定插件的事件和方法出现(应该生成存根代码),但事实并非如此......没有任何反应。
当他们尝试使用类似的程序集(相同的框架、相同类型的界面、相同版本的 'Microsoft.Dynamics.Framework.UI.Extensibility' 程序集 - 简而言之非常相似的程序集)时,方法和事件的代码生成为预期的。
所以我的问题是,很明显,当它们在 C# 代码中几乎相同时,为什么它适用于一个程序集而不是另一个程序集?
这是程序集不起作用的代码。
using Microsoft.Dynamics.Framework.UI.Extensibility;
namespace Dynamics.NAV.CR
{
[ControlAddInExport("Dynamics.NAV.CR")]
public interface ICRAddIn
{
[ApplicationVisible]
event ApplicationEventHandler AddInReady;
[ApplicationVisible]
event DataEventHandler ButtonClicked;
[ApplicationVisible]
event DataEventHandler ElementHtmlRetrieved;
[ApplicationVisible]
event DataEventHandler ElementTextRetrieved;
[ApplicationVisible]
void setElementHtml(string control_id, string html);
[ApplicationVisible]
void setElementText(string control_id, string text);
[ApplicationVisible]
void setElementCss(string control_id, string css);
[ApplicationVisible]
void addElementCssCls(string control_id, string cls);
[ApplicationVisible]
void removeElementCssCls(string control_id, string cls);
[ApplicationVisible]
void setElementProp(string control_id, string prop_name, string prop_value);
}
}
我错过了什么?
部署该组件的人说他已经确保它“畅通无阻”,所以这不应该是问题。
我忘了添加自定义事件处理程序的代码 - 在这里。
namespace Dynamics.NAV.CR
{
public delegate void DataEventHandler(object data);
}