1
我想產生的OData代理的服務:http://services.odata.org/Northwind/Northwind.svc/ $元我使用System.Data.Services.Design.EntityClassGenerator用於生成的OData代理EntityClassGenerator:不產生任何輸出NorthwindDataService
。
當我實例化EntityClassGenerator並調用GenerateCode時,輸出沒有錯誤。但是生成的代理代碼中沒有代碼。
相同的代碼適用於我自己的服務。但是當我將它指向任何外部服務時,EntityClassGenerator不起作用。
下面是代碼:
HttpWebRequest webRequest = (HttpWebRequest)HttpWebRequest.Create(metadataEndpoint);
webRequest.Method = "GET";
webRequest.ContentType = "text/xml;encoding='utf-8";
webRequest.Proxy = (proxy != null) ? proxy : WebRequest.DefaultWebProxy;
using (WebResponse response = webRequest.GetResponse())
{
string xml = string.Empty;
XmlReaderSettings settings = new XmlReaderSettings();
using (TextReader reader = new StreamReader(response.GetResponseStream()))
{
xml = reader.ReadToEnd();
using (XmlTextReader sourceReader = new XmlTextReader(reader))
{
using (StringWriter targetWriter = new StringWriter())
{
// Generate the OData End point proxy.
EntityClassGenerator entityGenerator = new EntityClassGenerator(LanguageOption.GenerateCSharpCode);
entityGenerator.OnPropertyGenerated += new EventHandler<PropertyGeneratedEventArgs>(entityGenerator_OnPropertyGenerated);
IList<System.Data.Metadata.Edm.EdmSchemaError> errors = entityGenerator.GenerateCode(sourceReader, targetWriter, namespacename);
entityGenerator.OnPropertyGenerated -= new EventHandler<PropertyGeneratedEventArgs>(entityGenerator_OnPropertyGenerated);
odataProxyCode = targetWriter.ToString();
}
}
}
}
你怎麼開的XmlReader這對於GenerateCode呼叫輸入? – 2010-09-16 11:50:00
以下是代碼: – Venki 2010-09-19 09:56:29
我已更新原始帖子中的源代碼。從文本閱讀器創建XmlTextReader。之前,我從GetResponseStream獲取的流中創建XmlTextReader。 – Venki 2010-09-19 10:04:04