PDA

View Full Version : Serialize và Derialize ở 2 project khác nhau ???



lethao1135
09-11-2010, 14:44
Mình đang lập trình và gặp lổi như sau mong các bạn chỉ giúp:

Mình tạo một class mới ho_so serializable.
Project save_file thì serialize một instance của class ho_so vào fille c:\tem.txt .
Sau đó Project restore_file deserialize file trên lại.
Nhưng ở restore_file nó báo : Unable to find assembly 'save_file, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'..

Mình nghỉ chỉ có thể là trong file c:\temp.txt nó lưu thông tin dựa vào save_file project nên restore_file project không deserialize được.
Pro nào hiểu rõ chỉ giáo giúp.

Mình đã tham khảo nhiều trên diển đàn nhưng tất đều Serialize và Deserialize trên cùng project nên lúc Deserialize thành công.
Còn mình chạy trên 2 project nên không làm sao. Rất mong mọi người giúp đỡ. Thanks.

anhchanghaudau
10-11-2010, 10:51
Mình đang lập trình và gặp lổi như sau mong các bạn chỉ giúp:

Mình tạo một class mới ho_so serializable.
Project save_file thì serialize một instance của class ho_so vào fille c:\tem.txt .
Sau đó Project restore_file deserialize file trên lại.
Nhưng ở restore_file nó báo : Unable to find assembly 'save_file, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'..

Mình nghỉ chỉ có thể là trong file c:\temp.txt nó lưu thông tin dựa vào save_file project nên restore_file project không deserialize được.
Pro nào hiểu rõ chỉ giáo giúp.

Mình đã tham khảo nhiều trên diển đàn nhưng tất đều Serialize và Deserialize trên cùng project nên lúc Deserialize thành công.
Còn mình chạy trên 2 project nên không làm sao. Rất mong mọi người giúp đỡ. Thanks.

Mỗi class đều có thông tin assembly riêng, tạo 2 project khác nhau thì ra 2 cái assembly khác nhau, việc này không thể deser từ 1 class instance của project này sang class instance của project khác, cho dù 2 class này nhìn bằng mắt thì có property và tên giống nhau hoàn toàn, nhưng điều đó không có ý nghĩa gì cả :D.

Muốn des hay ser thì nên làm theo cấu trúc sau
Project thư viện chung, chứa khai báo class cần seri hoặc deser
Project dùng để serialize (không chứ khai báo class cần seri, chỉ chứa đoạn mã để thực thi viêc seri thôi), tham chiếu đến Project thư viện
Project dùng để deser, không chứa khai báo class cần deser, tham chiếu đến Project thư viện

Làm như vậy, thì khai báo class dùng trong cả 2 project deser và ser đều là 1, do nó chính là class nằmg trong Project thư viện

lethao1135
10-11-2010, 11:31
Bạn có thể cho 1 ví dụ được không. Mình cũng đã tham khảo cách làm này. Tạo một class library và Build ra file Dll. Sau đó 2 project serialize và deserialize tham chiếu đến file DLL đó mà vẫn báo lổi. Bạn gữi lên cho 1 ví dụ nhỏ nhỏ thì tốt quá. Thanks.

anhchanghaudau
10-11-2010, 21:40
Bạn có thể cho 1 ví dụ được không. Mình cũng đã tham khảo cách làm này. Tạo một class library và Build ra file Dll. Sau đó 2 project serialize và deserialize tham chiếu đến file DLL đó mà vẫn báo lổi. Bạn gữi lên cho 1 ví dụ nhỏ nhỏ thì tốt quá. Thanks.

Bạn thử tham khảo solution này, trong đây có 1 solution bao gồm 3 project con như mình đã nói http://linq2js.byethost5.com/samples/serializer.zip

lethao1135
11-11-2010, 13:33
Cảm ơn bạn rất nhiều.