嗨,我一直在尋找我的錯誤,但我找不到任何幫助我的東西。問題是這樣的。我一直在與亞音速3,Newtonsoft JSON和寫入的LINQ的方式,所以我有這個簡單的查詢:Subsonic 3 Newtonsoft JSON「自引用循環異常」
var found = from client in newclients.All() where client.Period == "sometext" select client;
string periodoJSON = JsonConvert.SerializeObject(periodoFound); //this get "Self referencing loop Exception"
的問題是,當我運行該腳本,我得到了可怕的例外「自referening環例外」的JsonConvert線,亞音速所有的對象沒有任何問題,但如果我做了以下。
var found = from client in newclients.All() where client.Period == "sometext" select new client{client.Name, client.LastName, etc};
string periodoJSON = JsonConvert.SerializeObject(periodoFound);
我得到的對象與所有屬性的任何問題序列化。我正在做最後的方式,因爲我必須完成我的工作,但是對於這個問題有任何其他方式或解決方案,如果沒有,每次我想要獲得全表屬性時都必須編寫所有屬性。
希望任何可以解決我的問題Ø幫我在找到解決辦法的路徑....
我有什麼是LINQ的一個非常基本的查詢和我嘗試JsonSerializerSettings三個值和任何工作,我再次與亞音速3這不會發生subsnoic 2,我可以使它工作,如果我指定一個一個的linq查詢中的對象的屬性是否有任何線索發生了什麼,任何更多的幫助將是偉大的!如果我將Serialize頁面的值變得瘋狂並處於無限循環狀態,那麼如果我確定了錯誤,則簡單操作不起作用,忽略任何事情......有關此自我referencia循環的更多信息?
var u = usuario.SingleOrDefault(x => x.TipoUsuario == "A" || x.TipoUsuario == "W");
JsonSerializerSettings setting = new JsonSerializerSettings();
setting.ReferenceLoopHandling = ReferenceLoopHandling.Error; //.Serialize .Ignore
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),"usuario", "var usuario=" + JsonConvert.SerializeObject(u, Formatting.None, setting) + ";");
更新------
我的代碼如下
string jsU = JsonConvert.SerializeObject(u,Formatting.None,new JsonSerializerSettings { PreserveReferencesHandling = PreserveReferencesHandling.Objects, ReferenceLoopHandling = ReferenceLoopHandling.Ignore });
,是workign但唯一過錯是,在JSON對象涉及所有關於列的信息亞音速3和BIG大塊的文本解釋它......任何人都知道如何不發送這部分對象?
是我的方式或寫作,不被禁止或粗魯,就像有人大聲說話時,你不會說他不說話,因爲那是他的聲音,同樣是這個,感嘆號給人一種感覺一個人的方式,而不是反過來......對不起,如果你得罪了,但你的做法是一種審查制度「是壓制言論或其他交流,可能被認爲是令人反感,有害,敏感或不方便總體「。 – freesoul 2010-12-16 00:11:05