Wie spät gebundene COM-Objekte veröffentlichen?
-
10-07-2019 - |
Frage
Ich glaube, ich habe auch Objekte spät gebunden COM zu lösen.
Aber wie wird dies direkt geschehen?
In meiner Situation verwende ich den folgenden Code aus C #, um den fokussierten Punkt von Google Earth (vereinfachte) zu erhalten:
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);
So wie ich lassen Sie die Kamera und Google Earth-Objekte in dieser Situation?
Lösung
Sie können mit Marshal.ReleaseComObject
z.
if(Marshal.IsComObject(oGE)==true)
{
Marshal.ReleaseComObject(oGE);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow