ArcGIS 10.1
Win7 旗舰版
今天在做某些.Net与COM对象数据类型转换的时候发现在ArcObjects中存在已经定义好的转换方法了,以前都是自己手写的,感觉做了很多的无用功。。。
ESRI.ArcGIS.ADF.Local
在这个程序集下面的ESRI.ArcGIS.ADF.Local.COMSupport
命名空间下面有两个类,我们使用的就是OLE
我们看到OLE
类下面有一个构造函数和三个方法,看看解释:
The GetIFontDispFromFont method can be used to convert an existing .NET System.Drawing.Font object into a Stdole.StdFont object.
就是System.Drawing.Font
对象转换为IFontDisp
对象,在stdole.dll
程序集中的对象,然后就可以赋值给COM对象,即ArcObjects对象啦!~
ESRI.ArcGIS.ADF.Connection.Local
在这个程序集下面有三个命名空间,重点关注ESRI.ArcGIS.ADF.Connection.Local
,
在Converter
类中可以对System.Drawing.Color
和ESRI.ArcGIS.Display.IRgbColor
对象进行互相转换,此外,我们发现还可以将System.Drawing.Font
转换为stdole.IFontDisp
,貌似和ESRI.ArcGIS.ADF.Local
中的方法GetIFontDispFromFont()
有点重合?
同时,在这个程序集下面还存在ESRI.ArcGIS.ADF.ComReleaser
,
在这里我们发现了很多对象释放的方法,如ReleaseCOMObject()
,在.Net中我们习惯使用的是System.Runtime.InteropServices.Marshal.ReleaseComObject()
来释放对象,这个方法也可以实现同样的效果!~
总结
ESRI关于ArcObjects的开发文档做的还是非常详细的,我们可以经常去看看他里面到底有什么,说不定我们很费劲实现的方法在它里面已经给我们封装好了呢!!!