开发平台:VS2015
软件:MicroStation CE(Update 7)
案例一:HelloWord程序
1.新建工程--》C#--》Class Library--》.NET Framework 4.6.1
2.修改编译生成DLL文件存放路径
-打开项目属性,Build--》output--》output path 设置该路径为MicroStationCE路径
-例:C:\Program Files\Bentley\MicroStation CONNECT Edition\MicroStation\Mdlapps\
3.添加引用
-System.Windows.Forms
4.添加动态链接库(在添加引用对话框里面)
…\MicroStation\Bentley.DgnDisplayNet.dll…\MicroStation\Bentley.DgnPlatformNET.dll…\MicroStation\Assemblies\ECFramework\Bentley.EC.Persistence3.dll…\ MicroStation\Assemblies\ECFramework\Bentley.ECObjects.Interop3.dll…\MicroStation\Assemblies\ECFramework\Bentley.ECObjects3.dll…\MicroStation\Assemblies\ECFramework\Bentley.ECSystem3.dll…\MicroStation\Assemblies\ECFramework\Bentley.General.1.0.dll…\MicroStation\Bentley.GeometryNET.dll…\MicroStation\Bentley.GeometryNET.Common.dll…\MicroStation\Bentley.GeometryNET.Structs.dll…\MicroStation\Assemblies\Bentley.Interop.MicroStationDGN.dll…\MicroStation\Assemblies\Bentley.MicroStation.dll…\MicroStation\Assemblies\Bentley.MicroStation.Interfaces.1.0.dll…\MicroStation\Assemblies\Bentley.MicroStation.Ribbon.dll…\MicroStation\Assemblies\Bentley.MicroStation.WPF.dll…\MicroStation\Assemblies\ECFramework\Bentley.Platform.dll…\MicroStation\Assemblies\ECFramework\Bentley.UI.dll…\MicroStation\Assemblies\ECFramework\Bentley.Windowing.dll…\MicroStation\ustation.dll
5.修改主类代码
using Bentley.MstnPlatformNET;
using System.Windows.Forms; namespace csAddins
{internal sealed class MyAddin : AddIn{public static MyAddin Addin = null;private MyAddin(System.IntPtr mdlDesc) : base(mdlDesc){Addin = this;}protected override int Run(string[] commandLine){MessageBox.Show("Hello World!");return 0;}}
}
要使一个.NET程序集能够作为Addins在Mstn下运行,需要满足如下三个条件:①包含有一个派生于Bentley.MstnPlatformNET.Addin的类;②该派生类必须提供一个单参数(IntPtr类型的MDL描述符)的构造函数,且该构造函数需要链接到基类构造函数上;③该派生类必须覆盖Addin基类中的虚方法Run()。以上对MyAddin类的定义正是满足了这三个基本条件。
6.现在来验证我们的Addin程序。请启动Mstn,点击如下图所示的图标打开key-in窗口(或通过F9快捷键打开),在键入域中键入MDL LOAD csAddins并回车,此时应该能看到一个写着“Hello World!”的消息框弹出来。