Это должно быть так просто, и я чувствую, что я просто что-то пропустил. Я новичок в HTTP-стороне этого приложения, поэтому мне также кажется, что я снимаю в темноте.Доступ к многостраничному объекту HTTP-запроса через C# IHttpHandler
Мы делаем B2B EDI. Мы получим многостраничный запрос POST. Каждая часть представляет собой XML. Мне нужно извлечь каждую часть и преобразовать каждый в XmlDocument.
Вот что я написал.
using System;
using System.Collections.Generic;
using System.Web;
using System.Xml;
namespace Acme.B2B
{
public class MultipleAttachments : IHttpHandler
{
#region IHttpHandler Members
public bool IsReusable { get { return true; } }
public void ProcessRequest(HttpContext context)
{
var ds = extractDocuments(context.Request);
return; // Written for debugging only.
}
#endregion
#region Helper Members
private IEnumerable<XmlDocument> extractDocuments(HttpRequest r)
{
// These are here for debugging only.
var n = r.ContentLength;
var t = r.ContentType;
var e = r.ContentEncoding;
foreach (var f in r.Files)
yield return (XmlDocument)f;
}
#endregion
}
}
Я довольно уверен, что (XmlDocument)f
не будет работать, но я до сих пор изучают. Как ни странно, установив точку останова на var n = r.ContentLength;
, код никогда не попадает в эту точку останова. Он просто попадает в точку останова, установленную на постороннем return;
.
Что, черт возьми, я пропустил?
Какой тип 'Files'? Является ли он явно конвертируемым в 'XmlDocument'? –
'Files' имеет тип' HttpFileCollection'. Я уверен, что он не конвертируется в 'XmlDocument'. Это всего лишь ознакомительный код прямо сейчас. –