سؤال

في شبكة الاتصال عن بعد، <م> Activator.GetObject طريقة لديها <م> دولة المعلمة. ما هو الغرض من هذا <م> دولة المعلمة؟ هل يمكنني استرداد قيمته من جانب الخادم؟

وMDSN لم يساعد كثيرا.

ما أود القيام به:
العميل:
ChannelServices.RegisterChannel(new TcpChannel(0));
object obj = Activator.GetObject(typeof(MyObj), "tcp://serverName:1234/RemoteObj", "myCustomData");

جانب الخادم:
الحصول على السلسلة "myCustomData".

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

المحلول

وأنا لست متأكدا تماما ما هو الغرض من هذا المجال الدولة هو ولكن يبدو أن هناك قيمة محددة القناة التي ليست ذات فائدة للالتعليمات البرمجية. في البحث عن المفقودين من خلال Activator.GetObject في العاكس ستلاحظ أنه في نهاية المطاف يحصل تمريرها إلى IChannelSender.CreateMessageSink. استخدام هذه البيانات غير محددة التنفيذ.

وبحث سريع كشف واحد فقط منفذة إذا IChannelSender: CrossAppDomainChannel. في هذا التطبيق معين يتم استخدام المعلمة الدولة إلا إذا كانت من نوع معين: CrossAppDomainData. هذا هو الطبقة الداخلية وهي ليست في متناول البرنامج، وبالتالي لا جدوى منها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top