Javad_Mail
دوشنبه 23 اردیبهشت 1387, 17:21 عصر
سلام . من دچار يك مشكل بد شدم ،خيلي هم جستجو كردم ولي به نتيجه اي نرسيدم
مشكل :
من يك كلاس دارم ، كه instanc هايي از كلاسهاي ديگه توش تعريف كردم .
مثال
namespace SerilaizeTest
{
public class M
{
private A _a = new A();
private B _b = new B();
public A a { get { return _a; } set { _a = value; } }
public B b { get { return _b; } set { _b = value; } }
public string Name
{
get { return "JAVAD"; }
set { }
}
}
public class A
{
private X _x;
public X x { get { return _x; } set { _x = value; } }
}
public class B
{
private X _x;
public X x { get { return _x; } set { _x = value; } }
}
public class X
{
private string _Name = "javad";
public string Name { get { return _Name; } set { _Name = value; } }
}
}
مشكل اينجاست كه فرض كنيد من مي خوام كلاس M رو اينطوري استفاده كنم .
M m = new M();
m.a.x = new A();
m.b.x = m.a.x;
توجه كنيد كه m.a.x به صورت refrencetype تويه m.b.x هم وجود داره .
پس اگه m.a.x رو عوض كنم m.b.x هم عوض ميشه .
تا اينجاش مشكلي ندارم .
امام اگه بيايم كلاس m رو Serializeكنيم ، و بعد Deserilize كنيم refrencetype ها از بين ميرن .
يعني بعد از desrilize ، كلاسي كه از جنس M دستمون مياد m.a.x با m.b.x فرق مي كنه يعني به يه refrence اشاره نمي كنن .
اين حالت تو webservice ها هم صادقه . يعني اگه همچين كلاسي رو تو يه متود webservice برگردونيد مشكل من رو خواهين داشت .
من نتونستم راهي تو اينترنت پيدا كنم . جز اينكه خودم بيام براي كلاسهام interface ها رو implement كنم و استفاده كنم كه يه چيز فضايي مي شد .
اگه بتونين كمكم كنيد خيلي ممنون مي شم كه پروژم رو هواست تقريبا :(
ممنون
مشكل :
من يك كلاس دارم ، كه instanc هايي از كلاسهاي ديگه توش تعريف كردم .
مثال
namespace SerilaizeTest
{
public class M
{
private A _a = new A();
private B _b = new B();
public A a { get { return _a; } set { _a = value; } }
public B b { get { return _b; } set { _b = value; } }
public string Name
{
get { return "JAVAD"; }
set { }
}
}
public class A
{
private X _x;
public X x { get { return _x; } set { _x = value; } }
}
public class B
{
private X _x;
public X x { get { return _x; } set { _x = value; } }
}
public class X
{
private string _Name = "javad";
public string Name { get { return _Name; } set { _Name = value; } }
}
}
مشكل اينجاست كه فرض كنيد من مي خوام كلاس M رو اينطوري استفاده كنم .
M m = new M();
m.a.x = new A();
m.b.x = m.a.x;
توجه كنيد كه m.a.x به صورت refrencetype تويه m.b.x هم وجود داره .
پس اگه m.a.x رو عوض كنم m.b.x هم عوض ميشه .
تا اينجاش مشكلي ندارم .
امام اگه بيايم كلاس m رو Serializeكنيم ، و بعد Deserilize كنيم refrencetype ها از بين ميرن .
يعني بعد از desrilize ، كلاسي كه از جنس M دستمون مياد m.a.x با m.b.x فرق مي كنه يعني به يه refrence اشاره نمي كنن .
اين حالت تو webservice ها هم صادقه . يعني اگه همچين كلاسي رو تو يه متود webservice برگردونيد مشكل من رو خواهين داشت .
من نتونستم راهي تو اينترنت پيدا كنم . جز اينكه خودم بيام براي كلاسهام interface ها رو implement كنم و استفاده كنم كه يه چيز فضايي مي شد .
اگه بتونين كمكم كنيد خيلي ممنون مي شم كه پروژم رو هواست تقريبا :(
ممنون