我有一個類,即trues到SER \ DES的對象,給它,使用Json.net
反序列化類具有2個非默認的構造函數
public class JsonSerializer
{
public string Serialize(object toSerialaze)
{
return JsonConvert.SerializeObject(toSerialaze);
}
public T Deserialize<T>(string toDeserialaze)
{
return JsonConvert.DeserializeObject<T>(toDeserialaze);
}
}
,並給予它anobject這樣一類
的public class Isbn
{
private readonly int _groupCode;
private readonly int _publisherCode;
private readonly int _titleCode;
private readonly int _checkCode;
private static readonly Regex Regex = new Regex(@"^\s*\d*\s*-\s*\d*\s*-\s*\d*\s*-\s*\d*\s*$");
public Isbn(int groupCode, int publisherCode, int titleCode, int checkCode)
{
_groupCode = groupCode;
_publisherCode = publisherCode;
_titleCode = titleCode;
_checkCode = checkCode;
}
public Isbn(string isbn)
{
if (isbn == null)
throw new ArgumentNullException("isbn");
if (isbn == "") return;
if (!IsValid(isbn)) return;
var isbnStrings = isbn.Split(new[] {'-', ' '}, StringSplitOptions.RemoveEmptyEntries);
_groupCode = Convert.ToInt32(isbnStrings[0]);
_publisherCode = Convert.ToInt32(isbnStrings[1]);
_titleCode = Convert.ToInt32(isbnStrings[2]);
_checkCode = Convert.ToInt32(isbnStrings[3]);
}
}
我收到一個異常: 附加信息:無法找到用於類型Library.Isbn的構造函數。一個類應該有一個默認構造函數,一個帶參數的構造函數或一個帶有JsonConstructor屬性標記的構造函數。 我知道,我可能把[JsonConstructor]放在構造函數之前,我需要在反序列化時使用,但我不想讓Isbn類知道Json。 我該怎麼做另一種方式呢?我該如何讓JsonConverter知道使用哪個構造函數?
樣品jsons? .. –