PDA

View Full Version : سوال: ادغام 2 کلاس شبیه به هم و از جنس متفاوت



arman_Delta2002
یک شنبه 02 فروردین 1394, 07:51 صبح
سلام و سال نو مبارک
من 2 تا کلاس شبیه به هم دارم ولی در 2 فضا نام متفاوت
یکی در یک dll و دیگری در یک Dll دیگه میخوام که داده کلاس اول برابر داده های کلاس دوم بشه چطور ممکنه ؟
دونه دونه فیلد ها رو مقدار بدم یکم غیر معقول هست !
تابع خواصی داریم یا حلقه تکرار خواصی میخواد ؟

TripleSClassLibraryPublic.tb_Athlete va3r= new TripleSClassLibraryPublic.tb_Athlete ();
va3r = (TripleSClassLibraryPublic.tb_Athlete)tb_RequestsT emp[0].tb_Athlete_From;



Error 5 Cannot convert type 'TripleS.ServiceReference1.tb_Athlete' to 'TripleSClassLibraryPublic.tb_Athlete'

plus
یک شنبه 02 فروردین 1394, 15:49 عصر
اگه روی کدهای کلاسها کنترل ندارین، چون از یک نوع نیستن باید فلید ها رو تک تک مقدار دهی کنید. منتها میتونید این رو فقط یک بار در یک extension method یا متد استاتیک انجام بدین.
Extension Methods (https://msdn.microsoft.com/en-us//library/bb383977.aspx)
اگه روی کدهای کلاس ها دسترسی دارین و از dll یکی میتونید به دیگری reference بدین، میشه که یک implicit یا explicit cast operator برای یکی از کلاس ها ایجاد کنید.
Using Conversion Operators (https://msdn.microsoft.com/en-us/library/85w54y0a.aspx)

SabaSabouhi
دوشنبه 03 فروردین 1394, 10:05 صبح
سلام و سال نو مبارک
من 2 تا کلاس شبیه به هم دارم ولی در 2 فضا نام متفاوت
یکی در یک dll و دیگری در یک Dll دیگه میخوام که داده کلاس اول برابر داده های کلاس دوم بشه چطور ممکنه ؟
دونه دونه فیلد ها رو مقدار بدم یکم غیر معقول هست !
تابع خواصی داریم یا حلقه تکرار خواصی میخواد ؟

TripleSClassLibraryPublic.tb_Athlete va3r= new TripleSClassLibraryPublic.tb_Athlete ();
va3r = (TripleSClassLibraryPublic.tb_Athlete)tb_RequestsT emp[0].tb_Athlete_From;

سلام
یه راه دیگه هم هست، می‌تونی از Reflection استفاده کنی. به این صورت که فهرست propertyها رو بگیری، و مقدارش رو از شی اول گرفته و تو شی دوم ثبت کنی.


source.GetType()
.GetProperties( BindingFlags.Public | BindingFlags.Instance )
.ToList()
.ForEach( x=> SetValue( destination, x.Name, x.GetValue( source, null ) ) );

فرض کن که source شی مربوط به کلاس اول و destination شی مربوط به کلاس دوم باشه

صبا صبوحی