سؤال

أعتقد أنه يتعين علي أيضًا إطلاق كائنات 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);

إذًا كيف يمكنني تحرير الكاميرا وكائنات Google Earth في هذه الحالة؟

هل كانت مفيدة؟

المحلول

يمكنك استخدام Marshal.ReleaseComObject

على سبيل المثال

if(Marshal.IsComObject(oGE)==true)
{
  Marshal.ReleaseComObject(oGE);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top