WebRequest.RegisterPrefix()
을 사용해도됩니다. WebResponse
사용자 지정을 반환하는 사용자 지정 WebRequest
을 반환하는 IWebRequestCreate
을 구현해야하며, 마지막으로 URI에서 데이터를 가져 오는 데 사용할 수 있습니다.
public class DataWebRequestFactory : IWebRequestCreate
{
class DataWebRequest : WebRequest
{
private readonly Uri m_uri;
public DataWebRequest(Uri uri)
{
m_uri = uri;
}
public override WebResponse GetResponse()
{
return new DataWebResponse(m_uri);
}
}
class DataWebResponse : WebResponse
{
private readonly string m_contentType;
private readonly byte[] m_data;
public DataWebResponse(Uri uri)
{
string uriString = uri.AbsoluteUri;
int commaIndex = uriString.IndexOf(',');
var headers = uriString.Substring(0, commaIndex).Split(';');
m_contentType = headers[0];
string dataString = uriString.Substring(commaIndex + 1);
m_data = Convert.FromBase64String(dataString);
}
public override string ContentType
{
get { return m_contentType; }
set
{
throw new NotSupportedException();
}
}
public override long ContentLength
{
get { return m_data.Length; }
set
{
throw new NotSupportedException();
}
}
public override Stream GetResponseStream()
{
return new MemoryStream(m_data);
}
}
public WebRequest Create(Uri uri)
{
return new DataWebRequest(uri);
}
}
이 형식은 base64 인코딩 만 지원하지만 쉽게 URI 인코딩을 지원할 수 있습니다.
WebRequest.RegisterPrefix("data", new DataWebRequestFactory());
을 그리고 네,이 데이터를 입수 작동합니까 :
당신은 다음과 같이 등록합니다 XAML 파일에 이미지를.
이 답변으로 하루가 절약되었습니다. 또한 WebRequest 클래스를 구현할 때 Icredentials를 재정의합니다. – sms