كائنات قابلة للتسلسل مع حقول Marshalbyrefobject
-
16-09-2019 - |
سؤال
حسنا، لست متأكدا مما إذا كان هذا السؤال قد سئل قبل ذلك إذا كان له اللهب ثم. دعونا نقول أن لدينا فئتين مثل هذا
[Serializable]
public class ClassA
{
private string _name;
private ClassB _data;
}
public class ClassB : MarshalByRefObject
{
public string GetAppDomainName()
{
return AppDomain.Current.FriendlyName;
}
}
كما ترون أن الدرجة تحمل إشارة إلى الفضلات ولكن يرث الفئة B من فئة Marshalbyrefobject. سؤالي هو عندما أحاول تمرير Classa إلى AppDomain آخر، كيف يمكنني الحصول على Classa لتسلسل الطريقة التي عادة ما تكون عادة ما تكون باستثناء حقل _DATA إلى AppDomain الجديد كوكيل شفافة؟
أي مساعدة موضع تقدير :)
المحلول
هل اشتقت Classa من Marshalbyrefobject لأنه الكائن الذي تريده عن بعد إلى AppDomain الآخر.
ويمكنك تطبيق Iserializable http://msdn.microsoft.com/en-us/library/system.runtime.serialization.iserializable.aspx.
يجب أن ترث الأنواع من marshalbyrefobject عند استخدام النوع عبر حدود مجال التطبيق، ويجب عدم نسخ حالة الكائن لأن أعضاء الكائن غير قابل للاستخدام خارج نطاق التطبيق حيث تم إنشاؤها.