أولا: أحب أن أهنئك على المثال الخطير بالفعل أشتغل 100%
وأحب إيضا أن أشكركـ على متابعه الموضوع والمساعدة
ثانيا: أنا فعلا شغلته وأشتغل معي 100% ولاكن يوجد بعض الحواجز الذي واجهتها ألا وهي:
1- أعطيتني ملف DLL وفيه الأجراءات وانا بحاجه للملف لأرى طريقة التحويل من أهم الأجزاء قمت بوضعه في ملف مغلق
2- هذا المثال يقتضي على تحويل حسب ما قرأته بموضوعك على قطعه قطعه إي يقوم بتحويل ID وبعدين يقوم بتحويل Name وهكذا
طيب لنفرض ان لدي مصفوفه لامحدوده وقمت بإرسالها أو قمت بإرسال صوره أو قمت بإرسال متغير أو ثابت بغض النظر على نوعه هنا سأقوم بوضع لكل شيء إجراء
ولاكن يوجد لدي فكره بسيطه وواجهتني مشكله إيضا بسيطه أبسط من حجم الفكره إلا وهي تحويل Object بذاته إلى بينري وأستقبال بينري وأرجاعه إلى Object بغض النظر عن نوع Object الآتي
هو مصفوفه أم صوره أم متغير أم ثابت إلخ..
يوجد لدي إجراءان الأول تحويل Object إلى Byte
C#
PHP كود :
private byte[] ObjectToByteArray(Object obj)
{
if(obj == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, obj);
return ms.ToArray();
}
VB
PHP كود :
Private Function ObjectToByteArray(obj As [Object]) As Byte()
If obj Is Nothing Then
Return Nothing
End If
Dim bf As New BinaryFormatter()
Dim ms As New MemoryStream()
bf.Serialize(ms, obj)
Return ms.ToArray()
End Function
الثاني يقوم بعكس العملية يحول من Byte إلى Object
C#
PHP كود :
private Object ByteArrayToObject(byte[] arrBytes)
{
MemoryStream memStream = new MemoryStream();
BinaryFormatter binForm = new BinaryFormatter();
memStream.Write(arrBytes, 0, arrBytes.Length);
memStream.Seek(0, SeekOrigin.Begin);
Object obj = (Object) binForm.Deserialize(memStream);
return obj;
}
VB
PHP كود :
Private Function ByteArrayToObject(arrBytes As Byte()) As [Object]
Dim memStream As New MemoryStream()
Dim binForm As New BinaryFormatter()
memStream.Write(arrBytes, 0, arrBytes.Length)
memStream.Seek(0, SeekOrigin.Begin)
Dim obj As [Object] = DirectCast(binForm.Deserialize(memStream), [Object])
Return obj
End Function
إلى هنا جميل جدا
قمت بتجربة الكود وشغال 100% أنظر إلى تجربتي
حلو تم العمليه بدون إي مشاكل
الأن المطلوب هذي العمليه إدخالها في برنامج الأرسال
أبي أرسل B الذي هو نوعه Byte
وأبي أستقبل B الذي هو نوعه Byte
فقط لا غير ..
في مثالك السابق لايقبل الإرسال إلى من نوع Object وانا أبي ارسل من نوع Byte
وأبي أستقبل من نوع Byte حتى أستطيع إدخالها في إجراءاتي التي طبقتها في السابقه وبدون إي مشاكل
إذا كنت تتسائل عن إستخدامي لهذي الطريقه فالجواب لان هذي الطريقه تضمن لي بإرسال صوت - صوره - فيديو - ملف - مصفوفه - مصفوفه ثنائيه - متغير أو ثابت بشتا انواعها إلخ.. وكل هذا بكود واحد دون اللجوا لعدت أكواد