Tag: c#

C#:将CSS注入MSHTML实例的最佳方法是什么?

我正在尝试将一些其他HTML附带的CSS注入到C#托管的WebBrowser控件中。 我试图通过底层的MSHTML(DomDocument属性)控件来执行此操作,因为此代码用作完整IE8 BHO的各​​种原型。 问题是,虽然我可以注入HTML(通过mydomdocument.body.insertAdjacentHTML)和Javascript(通过mydomdocument.parentWindow.execScript),但它完全拒绝我的CSS代码。 如果我在注入后将包含我要插入的HTML的字符串与目标页面源进行比较,那么MSHTML的源代码将包含除 元素及其基础源之外的所有内容。 CSS通过了CSS 2.1的W3Cvalidation。 它没有做任何太棘手的事情,除了一些背景图像属性将图像直接嵌入到CSS中(例如background-image: url(“data:image/png;base64 …)”,并注释掉这些行不会改变结果。 更奇怪的是(而且我不确定这是否相关),是我上周没有遇到任何问题。 本周我又回到了它,在切换了一些在实际注入之前处理要注入的HTML的代码之后,它不再起作用了。 当然,我认为我的某个更改可能会出现问题,但在对所有逻辑进行评论并将其直接输入后,HTML仍然显示为未格式化。 目前我正在注入标签,虽然我试图注入并且遇到了类似的结果。 在此先感谢您的帮助! 汤姆

蓝牙在2台Windows 7计算机上使用C#进行配对而不进行配对

我已经读过,在通过蓝牙进行通信之前必须进行配对,但我想知道, 我是否可以创建一个应用程序来读取由另一个蓝牙应用程序广播但未配对的文本。 因为我们可以看到设备周围其他蓝牙设备的名称。 因此,我们不能将我们的蓝牙无线电设置为可以读取任何蓝牙播放文本消息的状态。 示例:android中有createInsecureRfcommSocketToServiceRecord() & listenUsingInsecureRfcommWithServiceRecord()但是在C#中没有这样的窗口吗? 谢谢 我的终极目标 🙂 正在创建一个在Windows 7 PC上运行的应用程序,它可以创建即时蓝牙网络,用于对等文件传输和聊天 脚本 有一群人,每个人在每台计算机上都有这个应用程序,其中一个人希望与其他人分享文件(可能是电子书,PDF或任何东西)。 他在他的应用程序配置中设置了他的网络“net”(或任何其他名称),而其他人也在每个应用程序上添加了相同的名称。 最后,每个用户都可以在他们的应用程序显示中看到他们周围的其他蓝牙节点的列表,配置为相同的网络名称“net”。 所以每个人都可以将文件发送到同一网络中的选定节点。 设计 每个用户只 打开蓝牙无线电 ,然后在应用程序中输入所需的网络名称 PC上的每个应用程序将通过临时创建的连接( 无需配对或用户参与 )迭代地与可访问的蓝牙设备通信,检查其网络名称并列出具有类似网络名称的可发现PC 然后他们将彼此共享这些列表,因此一台PC知道同一网络中的计算机,即使它们不在范围内。 通过算法解析的路径将文件从一台计算机发送到一台或多台计算机,甚至发送聊天文本。 所有这一切都将通过在每个应用程序之间建立的简单临时蓝牙连接来实现,除了网络名称之外不需要配对或认证。 (因为我不知道如何使用C#创建Piconets,或者如何创建蓝牙路由协议。 没有实施其他安全措施。 请让我知道任何其他更好的设计或方式。 非常感谢你阅读冗长的文字。 还包括任何有用的代码,可以帮助我实现上述目标。

MVC中的P3P标题信息

我不确定我想把它放在我的Asp.net MVC网站上: HttpContext.Current.Response.AppendHeader(“P3P”, “CP=\\\”IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\””); 我把它放在: public static void RegisterRoutes(RouteCollection routes) { HttpContext.Current.Response.AppendHeader(“P3P”, “CP=\\\”IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT\\\””); routes.IgnoreRoute(“{resource}.axd/{*pathInfo}”); routes.MapRoute( “Default”, // Route name “{controller}/{action}/{id}”, // URL with parameters new { controller […]

用于轮询属性的最简单的C#代码?

我想知道用于轮询属性值的最简单代码,以在其getter中执行代码。 目前我正在使用: instance.property.ToString(); ,但我宁愿有一些没有可能的副作用或不必要的开销。

ASP.NET:通过UserControl在MasterPage中调用函数

从页面中的MasterPage调用函数是非常困难的,但我如何为UserControl调用它: 添加不适用于UserControls。 所以this.Page.Master.MyFunction()失败:(

使用多个字段构建GroupBy表达式树

要动态生成GroupBy表达式,我正在尝试构建Linq表达式树。 要分组的字段是动态的,可以在数量上有所不同。 我用这个代码: string[] fields = {“Name”, “Test_Result”}; Type studentType = typeof(Student); var itemParam = Expression.Parameter(studentType, “x”); var addMethod = typeof(Dictionary).GetMethod( “Add”, new[] { typeof(string), typeof(object) }); var selector = Expression.ListInit( Expression.New(typeof(Dictionary)), fields.Select(field => Expression.ElementInit(addMethod, Expression.Constant(field), Expression.Convert( Expression.PropertyOrField(itemParam, field), typeof(object) ) ))); var lambda = Expression.Lambda<Func<Student, Dictionary>>( selector, itemParam); 代码是从这篇文章复制而来的 (谢谢Mark Gravel!)。 最终确定…… var currentItemFields […]

从程序集中删除签名

我在Visual Studio中打开了一个项目(恰好是Enyim.Caching)。 这个集会希望延迟签署。 实际上,它需要如此强烈地进行延迟签名,我无法强制Visual Studio在没有延迟签名的情况下编译它。 我在Visual Studio项目属性框中取消选中“仅延迟符号”和“签署程序集”,然后重新构建。 程序集仍标记为延迟符号(如sn.exe -v所示)。 我已卸载项目并validation签名是否设置为false。 重新加载项目时,将选中“签名”和“延迟签名”复选框。 我已经validationAssemblyInfo(或其他地方)中没有可能导致此问题的属性。 我在互联网上搜索了一个解决方案,但没找到。 我怎样才能做到这一点?

在XSLT中最后一次出现字符后获取子字符串

我在XML文件中有一个字符串,看起来类似于: M:Namespace.Class.Method(Something a,something b) 句点(。)字符的数量是有用的,这意味着它在本例中只能是2,但可以更多。 我想使用XSLT从最后一个’。’获取该字符串的子字符串。 性格,所以我只剩下: 方法(某事,某事b) 我无法使用标准的substring / substring-after函数实现此目的。 是否有捷径可寻?

在WinForms UI(.NET3.5)中淡出透明图像

应用程序:我正在编写一个小游戏,可以教用户阅读音乐笔记。 游戏很简单。 该应用程序显示一个注释,我的小女儿(目标用户)应该点击与该注释匹配的WinForm GUI上的模拟键盘键。 她有1分钟可以获得尽可能多的好点击。 计算成功和失败。 任务:当她点击一个好/坏键盘键时,我想立即确认她是对还是错, 而不会打断游戏 。 我的计划是显示一个OK或FAILED位图逐渐淡出并在~2秒内变得完全透明。 将位图淡出是一种很好的方法,可以鼓励用户专注于下一个音符,而不再为之前的结果烦恼。 技术问题:如何在具有透明度的Windows窗体上显示位图? 或者,您是否有其他非侵入性,易于实现的想法让用户知道当前的好/坏选择?

之前是否发现了在C#中使用async / await?

在关于async / await的stackoverflow之前的一个问题之后,在我看来,await比营销建议更强大和更通用。 它似乎是构建计算表达式的一般方法,就像在F#中一样。 因此,经过一番努力,我想出了一些成功执行的代码,如下所示。 using FluentAssertions; using System.Collections.Generic; namespace EnumerableViaAwait.Specs { [global::Microsoft.VisualStudio.TestTools.UnitTesting.TestClass] public class MyTestClass { public IEnumerable Numbers() { return EnumeratorMonad.Build(async Yield => { await Yield(11); await Yield(22); await Yield(33); }); } [Microsoft.VisualStudio.TestTools.UnitTesting.TestMethod] public void TestEnum() { var v = Numbers(); var e = v.GetEnumerator(); int[] expected = { 11, 22, 33 }; […]