我只是簡單介紹一下並提供一些背景信息:我們的應用程序有相當大的啓動問題,我們的webservice需要20(!!)秒才能響應第一個請求。在這個初始滯後之後,一切都運行得很快,但最初的滯後本身是一個相當大的問題。編譯時出現XMLSerializer錯誤
無論如何,我在過去兩天左右一直在研究這個問題,我設法得到了來回發送的請求的正確日誌,結果發現問題在於創建XMLSerializer ,這相當簡單,需要很長時間。
現在經過更多的使用Google搜索後,我發現了'生成序列化程序集'屬性,並且它不能正常工作。爲了強制序列化,我在這裏遵循了這個解決方案: https://stackoverflow.com/a/8798289/2401855
現在,實際上已經工作,除了......嗯,它沒有。當我嘗試編譯web服務時,Sgen會拋出'有反映類型的錯誤'錯誤,我不能繼續。最後,這裏來我的問題:
我如何得到Sgen.exe引發的實際錯誤?它可能只是幫助我更好地理解發生了什麼,但我試圖查看代碼項目所指的系統日誌文件,但沒有發現任何內容。
爲什麼錯誤首先被拋出?它被拋出的代碼特定位:
public class Enums { public enum TypNakladu { Prijmy = 1, Vydaje = 2 } public static string GetEnumDescription(Enum value) { FieldInfo fi = value.GetType().GetField(value.ToString()); DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes( typeof(DescriptionAttribute), false); if (attributes != null && attributes.Length > 0) return attributes[0].Description; else return value.ToString(); } }
「TypNakladu」是SGEN似乎並不喜歡枚舉。有沒有什麼辦法可以讓sgen忽略這個特殊的類,或者包含的枚舉? (還有更多,但是當我發表評論時,sgen只是抱怨下一個)
而這只是我想的。如果我在這裏犯了一個令人難以置信的愚蠢錯誤,我很抱歉,在ASP.NET webservices方面,我不是很有經驗。