0

我想我也必须释放后期绑定的 COM 对象。
但这如何直接完成?

在我的情况下,我使用 C# 中的以下代码从 Google Earth(简化)中获取焦点:

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);

那么在这种情况下如何释放相机和谷歌地球对象呢?

4

1 回答 1

6

您可以使用Marshal.ReleaseComObject

例如

if(Marshal.IsComObject(oGE)==true)
{
  Marshal.ReleaseComObject(oGE);
}
于 2009-08-03T14:16:18.000 回答