PDA

View Full Version : سوال: رابطه بین Application Domain و Process



john smithair
پنج شنبه 29 تیر 1391, 07:39 صبح
سلام دوستان
من چند وقتی که دارم روی ایجاد برنامه های توسعه پذیر در دات نت کار می کنم. این سوال چند روزی که ذهن من رو مشغول کرده اگر کسی کمک کنه ممنون میشم.
تا جایی که من فهمیدم تو دات نت در صورتی که دو اسمبلی در یک application domain اجرا بشن خب مطمئنا process های این دو اسمبلی هم یکی خواهد بود. اما چند روزی پیش دو تا کد تو msdn دیدم که با توجه به این مطلب یه جورایی تناقض داشت برام.
msdn این کد رو گذاشته برای فعال کردن دو افزونه در یک application domain یکسان

// Get the application domain // of an existing add-in (CalcAddIn). AddInController aiCtrl = AddInController.GetAddInController(CalcAddIn); AppDomain AddInAppDom = aiCtrl.AppDomain; // Activate another add-in in the same application domain. Calculator CalcAddIn3 = selectedToken2.Activate<Calculator>(AddInAppDom);

و کد زیر رو هم گذاشته برای فعال سازی دو افزونه در یک application domain و فرآیند یکسان:


// Get the AddInController of a // currently actived add-in (CalcAddIn). AddInController aiController = AddInController.GetAddInController(CalcAddIn); // Select another token. AddInToken selectedToken2 = ChooseAddIn(tokens); // Activate a second add-in, CalcAddIn2, in the same // appliation domain and process as the first add-in by passing // the first add-in's AddInEnvironment object to the Activate method. AddInEnvironment aiEnvironment = aiController.AddInEnvironment; Calculator CalcAddIn2 = selectedToken2.Activate<Calculator>(aiEnvironment);

خب اگه هر دو اسمبلی که در یک application domain هستند در یک فرآیند هم باشن وجود دو تا کد یکی برای این که فقط application domain ها یکی باشه و دیگری برای اینکه هم application domain ها و هم process ها یک باشه چه معنا داره؟
اگر کمک کنید ممنون میشم.
کد های بالا رو هم از آدرس زیر گرفتم:
http://msdn.microsoft.com/en-us/library/bb384196
با تشکر