Từ 1 tới 7 trên tổng số 7 kết quả

Đề tài: Truyền Object giữa các project sử dụng Serialize?

  1. #1
    Ngày gia nhập
    05 2011
    Bài viết
    35

    Mặc định Truyền Object giữa các project sử dụng Serialize?

    Mình có lớp Person

    Visual C# Code:
    1.     [Serializable]
    2.     public class Person
    3.     {
    4.         public string name { get; set; }
    5.         public int age { get; set; }
    6.  
    7.         public Person(string n, int a)
    8.         {
    9.             name = n;
    10.             age = a;
    11.         }
    12.     }

    Mình đã serialize một object kiểu Person

    Visual C# Code:
    1. Person p = new Person("ten", 10);
    2. FileStream fs = new FileStream("person.p", FileMode.Create);
    3. BinaryFormatter bf = new BinaryFormatter();
    4. bf.Serialize(fs, p);
    5. fs.Close();

    H mình muốn gởi cái file person.p cho một người bạn để người bạn đó dùng một project của cậu ta DeSerialize cái object Person kia để sử dụng được không ??

    Cảm ơn,

  2. #2
    Ngày gia nhập
    06 2009
    Nơi ở
    Cái hộp
    Bài viết
    1,255

    Tất nhiên là được rồi nhưng bên project kia cũng phải class Person như vậy. Sao bạn ko thử là biết ngay thôi.
    Men talk of killing time, while time quietly kills them.
    Time is what we want most, but what we use worst.
    ------------------------------
    YinYang's Programming Blog

  3. #3
    Ngày gia nhập
    05 2011
    Bài viết
    35

    Mình đã thử và nó quăng ra exception nên mình lập topic này,

    Mình làm trong một solution, một cái là Serialize, một cái là Deserilize
    Mình chạy project Serialize trước để tạo file person.p sau đó copy cái file đó vào project Deserilize chạy thì thì văng ra exception

    Mình gởi lên project, bạn xem thử mình sai hoặc thiếu gì

    Cảm ơn nhiều,

    Bạn nào đã từng làm serialize thì giúp mình với

    Mình vẫn chưa giải quyết được vấn đề này, hì

    Attached Files Attached Files

  4. #4
    Ngày gia nhập
    06 2009
    Nơi ở
    Cái hộp
    Bài viết
    1,255

    Bạn nên đưa thông tin lỗi lên đây, nếu cần tìm hiểu về serialization thì có thể xem bài sau:

    Serialization và Deserialization trong C#
    Men talk of killing time, while time quietly kills them.
    Time is what we want most, but what we use worst.
    ------------------------------
    YinYang's Programming Blog

  5. #5
    Ngày gia nhập
    05 2011
    Bài viết
    35

    Bài hướng dẫn ở trên vẫn là Serialize và Deserialize trong cùng một project, trong cùng project thì được nhưng nếu đem file serialized qua một project khác có một lớp Person y chang nhưng khi Deserialize thì bị lỗi

    Code:
    Unable to find assembly 'Serialize, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
    Cảm ơn bạn đã quan tâm

  6. #6
    Ngày gia nhập
    06 2009
    Nơi ở
    Cái hộp
    Bài viết
    1,255

    Mặc định Truyền Object giữa các project sử dụng Serialize?

    Dùng nhiều project nhưng phải có tham chiếu đến assembly dùng chung (ở đây là Person). Vậy bạn cần tạo một project riêng chứa các lớp cần thiết sử dụng cho serialize và ngược lại.

    Còn 1 cách khác là sử dụng SerializationBinder dùng để deserialize sang 1 lớp khác.
    Men talk of killing time, while time quietly kills them.
    Time is what we want most, but what we use worst.
    ------------------------------
    YinYang's Programming Blog

  7. #7
    Ngày gia nhập
    05 2011
    Bài viết
    35

    Trích dẫn Nguyên bản được gửi bởi Yin Yang Xem bài viết
    Dùng nhiều project nhưng phải có tham chiếu đến assembly dùng chung (ở đây là Person). Vậy bạn cần tạo một project riêng chứa các lớp cần thiết sử dụng cho serialize và ngược lại.

    Còn 1 cách khác là sử dụng SerializationBinder dùng để deserialize sang 1 lớp khác.
    Cảm ơn đã giúp đỡ,

    Mình đã tìm hiểu nhưng vẫn chưa giải quyết được vấn đề sử dụng lại object đã Serialization

    Nếu ở trong cùng một project mới có thể Se và Des thì hơi khó, mình đặt ra bài toán thế này

    Mình có một lớp Person trên một Webservice

    Visual C# Code:
    1.     public class Person
    2.     {
    3.         public string name { get; set; }
    4.         public DateTime birthday { get; set; }
    5.  
    6.         public Person() { }
    7.  
    8.         public Person(string n, DateTime a)
    9.         {
    10.             name = n;
    11.             birthday = a;
    12.         }
    13.  
    14.         public int Age()
    15.         {
    16.             return DateTime.Now.Year - birthday.Year;
    17.         }
    18.     }


    Webservice sẽ có một hàm là trả về đối tượng Person và mình có một cái WForms để nhận cái object person trả về, nếu


    Visual C# Code:
    1.         [WebMethod]
    2.         public Person ReturnPersonObject()
    3.         {
    4.             return new Person { name = "ten", birthday = new DateTime(1990, 10, 10) };
    5.         }

    Nếu mình trả về kiểu Person bình thường thì chỉ nhận được các giá trị thuộc tính của object Person còn hàm tính tuổi sẽ không sử dụng được, nên mình nghĩ là sẽ dụng Serialization (SoapFormatter) object rồi dụng WF để nhận, nhưng nếu đã nhận được object đó rồi thì làm sao Deserialization nó ra để sử dụng vì nó thuộc 2 project khác nhau, ở trên 2Y là phải trong cùng một assembly mới có thể Se và Des được.

    Cho mình hỏi có thể sử dụng Serialization để giải quyết bài toán trên đựoc không, hoặc còn cách nào khác không.

    Cảm ơn nhiều
    Đã được chỉnh sửa lần cuối bởi toan.iter : 03-09-2011 lúc 02:18 PM.

Các đề tài tương tự

  1. Trả lời: 0
    Bài viết cuối: 13-03-2013, 10:52 PM
  2. TẠO PROJECT WINDOWS PHONE GAME lỗi: object reference not set to an instance of an object?
    Gửi bởi akhoenuol trong diễn đàn Lập trình Windows Mobile bằng C#
    Trả lời: 2
    Bài viết cuối: 01-11-2012, 09:55 AM
  3. Lỗi Access Deny khi Serialize một Object A
    Gửi bởi dongvat8cang trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 02-01-2012, 08:32 AM
  4. truyền object vào array list
    Gửi bởi black_or_white trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 05-10-2011, 03:27 PM
  5. Serialize và Derialize ở 2 project khác nhau không chạy được???
    Gửi bởi lethao1135 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 10-11-2010, 11:27 AM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn