Picproje Elektronik Sitesi

BİLGİSAYAR => Donanım ve Yazılım => Konuyu başlatan: mir_as82 - 14 Nisan 2018, 01:10:33

Başlık: C # ta sınıfın bir fieldı serialize edilemiyor?
Gönderen: mir_as82 - 14 Nisan 2018, 01:10:33
Elimde A sınıfından bir a nesnesi var ve bunun bir fieldi string türünden.
Örneğin:

a.sfield="[\"\"123\"\"]";//yani [""123""]

Bu a nesnesini serialize edip, json olarak göndermek istiyorum ama bu string property engel oluyor.
Bu sorunu, A sınıfındaki sfield i nasıl tanımlarsam aşarım? Veya yöntemi nedir ?
Başlık: Ynt: C # ta sınıfın bir fieldı serialize edilemiyor?
Gönderen: mir_as82 - 14 Nisan 2018, 09:57:16
Bu durum ile karşılaşıp çözüm üreten oldu mu? Bir nesneyi serialize edip, Json olarak [""123""] değerini nasıl gönderirim?
Başlık: Ynt: C # ta sınıfın bir fieldı serialize edilemiyor?
Gönderen: Elektroemre - 14 Nisan 2018, 10:17:17
Örnek class'ını burada paylaşman mümkün mü? Normalde sorun olmaması lazım.
Başlık: Ynt: C # ta sınıfın bir fieldı serialize edilemiyor?
Gönderen: mir_as82 - 14 Nisan 2018, 10:58:30
public class MyClass
{
    public string summary { get; set}
    public string desp { get; set}
    public Dictionary<string, string> myDict1{ get; set}
    public Dictionary<string, string> myDict2 { get; set}
    public string customField { get; set}
}

MyClass field = new MyClass();
//diğer 4 field sorunsuz çevriliyor ondan onları yazmadım.
field.customField = "[\"\"123\"\"]";

Başlık: Ynt: C # ta sınıfın bir fieldı serialize edilemiyor?
Gönderen: tunayk - 14 Nisan 2018, 11:16:04
Aşağıda örnek bir kod var. VS 2013 te sorunsuz şekilde çalışıyor.

class Program
    {
        static void Main(string[] args)
        {
            Data dat= new Data();
            System.IO.MemoryStream ms= new System.IO.MemoryStream();
            System.Runtime.Serialization.Formatters.Binary.BinaryFormatter BF = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
            BF.Serialize(ms, dat);
            Console.Write(ms.Length.ToString() + "Byte serialized");
            Console.ReadKey();
        }
    }
    [Serializable]
    class Data
    {
        public Data() { }
        public string sData = "[\"\"123\"\"]";
        public int iData=1;   
    }
Başlık: Ynt: C # ta sınıfın bir fieldı serialize edilemiyor?
Gönderen: Elektroemre - 14 Nisan 2018, 11:42:14
Alıntı yapılan: mir_as82 - 14 Nisan 2018, 10:58:30public class MyClass
{
    public string summary { get; set}
    public string desp { get; set}
    public Dictionary<string, string> myDict1{ get; set}
    public Dictionary<string, string> myDict2 { get; set}
    public string customField { get; set}
}

MyClass field = new MyClass();
//diğer 4 field sorunsuz çevriliyor ondan onları yazmadım.
field.customField = "[\"\"123\"\"]";




Peki  field.customField = "abc"
olunca sorun çıkıyor mu?
Başlık: Ynt: C # ta sınıfın bir fieldı serialize edilemiyor?
Gönderen: mir_as82 - 14 Nisan 2018, 12:34:27
Alıntı yapılan: Elektroemre - 14 Nisan 2018, 11:42:14Peki  field.customField = "abc"
olunca sorun çıkıyor mu?

Çıkmıyor hocam.

Yalnız ben burada serialize işlemini JavaScriptSerializer sınıfı ile yapıyorum. Burada bunun ile ilgili durum olabilir mi?
Başlık: Ynt: C # ta sınıfın bir fieldı serialize edilemiyor?
Gönderen: mir_as82 - 15 Nisan 2018, 14:10:48
Arkadaşlar kod aşağıda çıktı da aşağıda. İstediğim çıktı şu,
{"customField":"[""123""]"}

Ama çıkan çıktı:
{"customField":"[\"\"123\"\"]"}

using System;
using System.Web.Script.Serialization;

namespace jsonSerializer
{
    class Program
    {
        static void Main(string[] args)
        {
            MyClass mc = new MyClass();
            mc.customField = "[\"\"123\"\"]";
            JavaScriptSerializer js = new JavaScriptSerializer();
            string json = js.Serialize(mc);
            Console.WriteLine(json);
            Console.ReadKey();
        }
    }

    [Serializable]
    public class MyClass
    {
        public string customField { get; set; }

    }
}



Çıktı:
{"customField":"[\"\"123\"\"]"}