本文整理汇总了C#中System.Net.HttpListenerContext.Extension方法的典型用法代码示例。如果您正苦于以下问题:C# HttpListenerContext.Extension方法的具体用法?C# HttpListenerContext.Extension怎么用?C# HttpListenerContext.Extension使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Net.HttpListenerContext
的用法示例。
在下文中一共展示了HttpListenerContext.Extension方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ProcessFileRequest
public bool ProcessFileRequest(HttpListenerContext context)
{
bool handled = false;
string path = context.Path().Value.Replace('/', '\\').LeftOfRightmostOf('.'); // without extension
string ext = context.Extension().Value;
if (String.IsNullOrEmpty(path))
{
path = "index";
}
if (String.IsNullOrEmpty(ext))
{
ext = "html";
}
path = path + "." + ext;
path = Path.Combine(websitePath, path);
if (File.Exists(path))
{
switch (ext)
{
case "html":
case "spa":
ServiceManager.Get<ISemanticProcessor>().ProcessInstance<WebServerMembrane, HtmlResponse>(r =>
{
r.Context = context;
r.Html = ReadTextFile(path);
});
break;
case "woff":
case "woff2":
case "ttf":
ServiceManager.Get<ISemanticProcessor>().ProcessInstance<WebServerMembrane, FontResponse>(r =>
{
r.Context = context;
r.ContentType = "font/" + ext;
r.BinaryData = ReadBinaryFile(path);
});
break;
case "js":
ServiceManager.Get<ISemanticProcessor>().ProcessInstance<WebServerMembrane, JavascriptResponse>(r =>
{
r.Context = context;
r.Script = ReadTextFile(path);
});
break;
case "css":
ServiceManager.Get<ISemanticProcessor>().ProcessInstance<WebServerMembrane, CssResponse>(r =>
{
r.Context = context;
r.Script = ReadTextFile(path);
});
break;
case "jpg":
case "ico":
case "png":
case "bmp":
case "gif":
ServiceManager.Get<ISemanticProcessor>().ProcessInstance<WebServerMembrane, ImageResponse>(r =>
{
r.Context = context;
r.ContentType = "image/" + ext;
r.BinaryData = ReadBinaryFile(path);
});
break;
default:
ServiceManager.Get<ISemanticProcessor>().ProcessInstance<WebServerMembrane, StringResponse>(r =>
{
r.Context = context;
r.Message = ReadTextFile(path);
r.StatusCode = 200;
});
break;
}
handled = true;
}
return handled;
}