Dynamics NAV + BC Control加载项未公开方法和事件

时间:2019-05-23 10:32:38

标签: dynamics-nav microsoft-dynamics-nav dynamics-business-central microsoft-dynamics-business-central

我为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);
}

1 个答案:

答案 0 :(得分:0)

好吧,事实证明,事情对我而言不起作用的明显原因是由于Dynamics NAV / BC UI可扩展性组件 Microsoft.Dynamics.Framework.UI.Extensibility 不同于目标系统的版本,或者至少这是我认为的原因。 我已经尝试了许多不同的方法来调整项目,以使其正常运行,似乎更改此程序集就可以解决问题。

我不能百分百确定,因为我还没有亲自将程序集部署到NAV,所以我不知道是否重启了适当数量的服务,缓存清除以及其他奇怪的事情已采取必要的措施。

因此,在出现其他原因导致我的问题的证据之前,我将假定是导致程序集版本不匹配的原因。