一、 概述
本文介绍通过PMLNET包装PDMS的内核命令, 实现pml调用常用的内置Command命令。
二、 实现方法
写一个PMLNET的dll, 开放一个callback(string commandKey)函数给pml。代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Reflection; 6 7 using Aveva.ApplicationFramework; 8 using Aveva.ApplicationFramework.Presentation; 9 using Aveva.Pdms.Presentation;10 using Aveva.PDMS.PMLNet;11 12 [assembly: PMLNetCallable()]13 namespace wttech14 {15
[PMLNetCallable()]16
public class PmlCoreCall17
{18
[PMLNetCallable()]19
public PmlCoreCall(){ }20
[PMLNetCallable()]21
public void Assign(PmlCoreCall that) { }22
[PMLNetCallable()]23
public void callback(string commandKey)24
{25
CommandManager.Instance.Commands[commandKey].Execute();26
}27
}28 }
三、 PML调用实例
1 import 'PmlCoreCall'2 handle any 3 endhandle4 using namespace 'wttech'5 !corecall = object PmlCoreCall() 6 !corecall.callback('AVEVA.View.WalkTo.DrawList')
AVEVA.View.WalkTo.DrawList为PDMS的内核命令, 在这里PmlCoreCall对象为PMLNET对象, 用其callback函数将Command的key传递进去,执行内核命令。
四、 总结
通过上面的实例我们看到PML可以通过PMLNET调用C#代码的形式对他进行扩展。实现了PML调用内核命令的需求。
dll下载链接: