使用CefSharp.Offscreen检索需要Javascript渲染的网页

我希望这是一项简单的任务,但是需要那些精通CefSharp的人来解决它。 我有一个我想从中检索HTML的url。 问题是这个特定的URL实际上并没有在GET上分发页面。 相反,它将一大堆Javascript推送到浏览器,然后浏览器执行并生成实际呈现的页面。 这意味着涉及HttpWebRequest和HttpWebResponse的常用方法不起作用。 我看了很多不同的“无头”选项,而我认为最符合我需求的选择有很多原因,那就是CefSharp.Offscreen。 但我不知道这件事是如何起作用的。 我看到有几个可以订阅的事件,以及一些配置选项,但我不需要像嵌入式浏览器那样的东西。 我真正需要的是一种做这样的事情的方式(伪代码): string html = CefSharp.Get(url); 订阅事件时我没有问题,如果需要等待Javascript执行并生成呈现的页面。

为什么我不能在单个服务器请求中插入带有外键的记录?

我正在尝试使用外键进行简单插入,但似乎我需要为每个记录插入使用db.SaveChanges() 。 如何在此程序结束时只使用一个db.SaveChanges() ? public static void Test() { using (var entities = new DBEntities()) { var sale = new SalesFeed { SaleName = “Stuff…”, }; entities.AddToSalesFeedSet(sale); var phone = new CustomerPhone { CreationDate = DateTime.UtcNow, sales_feeds = sale }; entities.AddToCustomerPhoneSet(phone); entities.SaveChanges(); } } 运行上面的代码后,我得到以下exception: System.Data.UpdateException:更新条目时发生错误。 有关详细信息,请参阅InnerException。 指定的值不是有效常量类型的实例参数名称:value。 编辑:更改了示例代码并添加了返回的exception。

动态绑定数据集到RDLC报告

我想将动态数据集绑定到rdlc。 如果我在ASPX文件中使用内联DataSource(静态绑定),我可以查看报告。 但是,如果我使用以下代码,报表查看器将继续显示“正在加载…”图像。 我已经检查了数据集名称,如果我将数据集名称更改为“Orders2”,则表明我没有提供所需的数据集“Orders”。 所以,我在表单上添加GridView并测试我的DataSet。 数据集包含数据并与GridView很好地显示。 问题只出在报告中,我无法动态地将数据绑定到ReportViewer。 请帮我。 谢谢。 protected void Page_Load(object sender, EventArgs e) { DataSet ds = GetDataSet(); ReportDataSource rds = new ReportDataSource(“Orders”, ds.Tables[0]); ReportViewer1.LocalReport.DataSources.Clear(); ReportViewer1.LocalReport.DataSources.Add(rds); ReportViewer1.LocalReport.Refresh(); GridView1.DataSource = ds; GridView1.DataBind(); } private DataSet GetDataSet() { var conString = ConfigurationManager.ConnectionStrings[“dotnetConnectionString”]; string strConnString = conString.ConnectionString; SqlConnection conn = new SqlConnection(strConnString); conn.Open(); string sql = […]

通过双缓冲区减少闪烁:SetStyle与重写CreateParam

任何人都可以解释它们之间的区别和关系 SetStyle(ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.DoubleBuffer, true) 和 protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle |= 0x02000000; // Turn on WS_EX_COMPOSITED return cp; } } 他们需要减少闪烁,但是何时以及如何正确使用它们? 它们可以单独使用,还是必须成对使用,这是什么原因? 谢谢! 积分 : 第一个代码片段是从MSDN页面引用的; 在如何修复用户控件中的闪烁中找到第二个代码片段,原作者是@HansPassant。

在FormFlows – Bot Framework中为Quit添加另一个关键字

是否可以使用Bot Framework在FormDialog中更改Quit突击队的关键字? 我想在键入某个单词时抛出FormCanceledException(不使用英语作为语言)。 如果我可以更改关键字,或者添加另一个与Quit相同的关键字,那将是完美的

如何将2个或更多c#程序集合并到1个库中?

我有4个dll。 但是我希望有一个单独的dll,它将包含来自所有这四个dll的代码。 我尝试添加一个项目并将所有现有代码粘贴到一个项目中,但我不能。

Autofac运行时参数

我是autofac的新手,希望看到将运行时值传递给构造函数的最佳实践。 我已经阅读了一堆stackoverflow问题,但是没有一个完全充实。 我们应该使用代表,工厂来创建服务等。我知道传递容器并不是实现这一目标的最佳方法。 在我的特定情况下,我有一个访问多个依赖项的服务,比如日志记录,数据提供者等。除了传递的少量服务之外,我还需要捕获运行时参数,比如userid,password。 SomeService需要用户标识和密码,并在Web查看器执行特定操作时查找。 以下是我的问题,并强调了问题。 public class SomeService : ISomeService { private readonly IDataProvider _dataProvider; private readonly ILog _log; private readonly string _username; private readonly string _password; public SomeService(IDataProvider dataProvider, ILog log, string username, string password) { _dataProvider = dataProvider; _log = log; _username = username; _password = password; } } 数据提供者和日志在autofac中配置 builder.RegisterType().As() builder.RegisterType().As() […]

从gridview导出到Excel

我有导出到Excel的代码。 在我的gridview中,我设置了分页以显示pagecount中的记录数。 但是在导出到Excel时,它并没有给我整个记录,而是向我展示了具有六条记录的相同分页。 我的代码: string attachment = “attachment; filename=Contacts.xls”; Response.ClearContent(); Response.AddHeader(“content-disposition”, attachment); Response.ContentType = “application/ms-excel”; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); // Create a form to contain the grid HtmlForm frm = new HtmlForm(); GrdDynamicControls.AllowPaging = false; GrdDynamicControls.Parent.Controls.Add(frm); frm.Attributes[“runat”] = “server”; frm.Controls.Add(GrdDynamicControls); frm.RenderControl(htw); //GridView1.RenderControl(htw); Response.Write(sw.ToString()); Response.End(); 如何更改或禁用分页以从gridview获取所有记录? 我在gridview中的数字为+ 9199等,但在导出后它以9.99等格式显示它。 如何从这里传递数字格式?

如何在C#中打开telnet连接并运行一些命令

这是直截了当的吗? 有人有任何好的例子吗? 我所有的谷歌搜索都返回了关于如何在dotNet上制作telnet客户端的项目,但这对我来说太过分了。 我想用C#做这个。 谢谢!

将ASP.NET MVC Controller属性注入服务层依赖项?

我正在使用类似于ASP.NET MVC教程中的方法 ,您将控制器的ModelState集合中的包装器传递给validation类,以便控制器可以访问错误信息。 这是一个熟练的例子: interface IProductValidator { void Validate(Product item); } class ProductValidator { // constructor public ProductValidator(ModelStateWrapper validationDictionary) { } } interface IProductService { void AddProduct(); } public class ProductService : IProductService { // constructor public ProductService(IProductValidator validator) { } } 使用Castle Windsor容器进行IoC / DI,如何创建IProductService ? 通常,我会: MvcApplication.IocContainer.Resolve() 但是这不能将Controller的ModelState属性的值注入到ProductValidator的构造函数中。 我可以使用构造函数参数来连接它,但这看起来真的很难看。