如何释放后期绑定COM对象?
-
10-07-2019 - |
题
我想我不得不释放也是后期绑定的COM对象。结果 这是怎么回事直接完成?
在我的情况下,我使用下面的代码从C#从谷歌地球(简体)得到的聚焦点:
Type oClassType = Type.GetTypeFromProgID("GoogleEarth.ApplicationGE");
object oGE = Activator.CreateInstance(oClassType);
object oCamera = oGE.GetType().InvokeMember("GetCamera", System.Reflection.BindingFlags.InvokeMethod, null, oGE, new object[] { 0 });
double dFocusLatitude = (double)oCamera.GetType().InvokeMember("FocusPointLatitude", System.Reflection.BindingFlags.GetProperty, null, oCamera, null);
double dFocusLongitude = (double)oCamera.GetType().InvokeMember("FocusPointLongitude", System.Reflection.BindingFlags.GetProperty, null, oCamera, null);
因此,如何我释放相机和谷歌地球在这种情况下的对象?
解决方案
可以使用 Marshal.ReleaseComObject的一>
e.g。
if(Marshal.IsComObject(oGE)==true)
{
Marshal.ReleaseComObject(oGE);
}
不隶属于 StackOverflow