我正在編寫一個控制臺應用程序,以便使用各自提供不同功能的ReportExecution2005和ReportService2010庫更輕松地管理本地 SSRS 實例。為了處理現有的報告,我必須從包含報告參數的 ReportServer 數據庫讀取 XML 字符串,解析它們,并使用這些信息來構建與服務器通信時使用的對象。為此,我編寫了一個簡單的函數,如下所示public static ParameterValue[] RebuildParameters(string parameters) { //setup xml XDocument main = XDocument.Parse(parameters); List<XElement> pElements = main.Descendants("ParameterValue").ToList(); //rebuild param list ParameterValue[] newParams = new ParameterValue[pElements.Count]; int i = 0; foreach (XElement param in pElements) { newParams[i] = new ParameterValue(); newParams[i].Name = param.Element("Name").Value.ToString(); newParams[i].Value = param.Element("Value").Value.ToString(); i++; } return newParams;}一切都很順利,直到我需要將這個輔助函數用于兩個單獨的命名空間。ParameterValue 類存在于兩個命名空間(Here和Here)中,但我無法在它們之間進行顯式轉換。我也試過設置一個通用函數,但由于類型未知,我無法分配名稱或值。public static T[] RebuildParameters<T>(string parameters) where T : new() { //setup xml XDocument main = XDocument.Parse(parameters); List<XElement> pElements = main.Descendants("ParameterValue").ToList(); //rebuild param list T[] newParams = new T[pElements.Count]; foreach (XElement param in pElements) { newParams[i] = new T(); //not allowed newParams[i].Name = param.Element("Name").Value.ToString(); newParams[i].Value = param.Element("Value").Value.ToString(); } return newParams; }編寫一個可以由來自不同命名空間的兩個類使用的單個幫助方法的最佳方法是什么,知道代碼將是相同的?
- 1 回答
- 0 關注
- 210 瀏覽
添加回答
舉報
0/150
提交
取消