如何重写Awesomium ResourceInterceptor

本文关键字:Awesomium ResourceInterceptor 重写 何重写 | 更新日期: 2023-09-27 18:18:22

我想阻止某些图像在Awesomium出现在页面上。这段代码不能工作,因为Awesomium IResourceInterceptor不是一个类,而是一个接口。

public class ResourceInterceptor : IResourceInterceptor
{
public bool NoImages { get; set; }
private static string[] _imagesFileTypes = { ".png", ".jpg", ".jpeg", ".gif", ".bmp" };
public ResourceResponse OnRequest(ResourceRequest request)
{
    string ext = System.IO.Path.GetExtension(request.Url.ToString()).ToLower();
    if (NoImages && _imagesFileTypes.Contains(ext))
    {
        request.Cancel();
    }
    return null;
}
public bool OnFilterNavigation(NavigationRequest request)
{
    return false;
}

}

我如何修改一个IResourceInterceptor的OnRequest方法当它是一个接口?

如何重写Awesomium ResourceInterceptor

您可以编写自己的接口实现。接口描述了在实现该接口的类上可用的方法。因此,你可以编写自己的类来实现IResourceInterceptor接口,并像这样使用它:

在构造函数中:

WebCore.Initialized += WebCoreInitialzed; 
//create an instance of your Interceptor (you need a private field of course)
interceptor = new ResourceInterceptor();

在事件处理函数中:

private void WebCoreInitialzed(object sender, CoreStartEventArgs e)
{
    WebCore.ResourceInterceptor = interceptor;
}

如果您不熟悉接口的概念,您可能需要阅读此处的msdn文章

一个stackoverflow问题的接口,列出一些教程可以在这里找到