C # ta sınıfın bir fieldı serialize edilemiyor?

Başlatan mir_as82, 14 Nisan 2018, 04:10:33

mir_as82

14 Nisan 2018, 04:10:33 Son düzenlenme: 14 Nisan 2018, 12:54:15 mir_as82
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 ?

mir_as82

Bu durum ile karşılaşıp çözüm üreten oldu mu? Bir nesneyi serialize edip, Json olarak [""123""] değerini nasıl gönderirim?

Elektroemre

Örnek class'ını burada paylaşman mümkün mü? Normalde sorun olmaması lazım.

mir_as82

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\"\"]";


tunayk

Aşağıda örnek bir kod var. VS 2013 te sorunsuz şekilde çalışıyor.
Kod Seç

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(msdat);
            
Console.Write(ms.Length.ToString() + "Byte serialized");
            
Console.ReadKey();
        }
    }
    [
Serializable]
    class 
Data 
    
{
        public 
Data() { }
        public 
string sData "[\"\"123\"\"]";
        public 
int iData=1;    
    }

Elektroemre

Alıntı yapılan: mir_as82 - 14 Nisan 2018, 13: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?

mir_as82

Alıntı yapılan: Elektroemre - 14 Nisan 2018, 14: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?

mir_as82

Arkadaşlar kod aşağıda çıktı da aşağıda. İstediğim çıktı şu,
{"customField":"[""123""]"}

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

Kod Seç
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 getset; }

    }
}



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