用于C#/ .NET应用程序的沙箱中的脚本语言

[这个问题类似于这个问题,但我也对沙箱的可能性感兴趣。] 我正在考虑在我的C#/ .NET应用程序中嵌入脚本语言,然后将我的一些应用程序API暴露给脚本。 似乎有很多好的选择(Lua,Boo,IronPython等),但是有没有简单的选项限制脚本语言的内置函数被使用? 例如,我不希望脚本能够执行I / O,除非通过我明确公开的API,因此不打印到控制台,打开文件等。这些脚本语言中的任何一种都提供了一种简单的方法这个?

在不使用COM的情况下从C ++调用C#方法

有没有办法创建C#对象并从非托管C ++调用方法,但没有使用COM Iterop? 我正在寻找像JNI(但对于.Net)这样的东西,你可以手动创建VM,创建对象等。

升级NewtonSoft JSON.NET不会隐式序列化受保护的成员

我刚刚将我的NewtonSoft JSON.NET版本从3.0.0更新到3.5.0,我注意到受保护的成员没有被隐式序列化。 我有以下课程: public class SimpleFileContainer : IDto { public virtual string Name { get; protected set; } public virtual string Path { get; protected set; } public SimpleFileContainer(string name, string path) { Name = name; Path = path; } } 以下测试代码未通过 var json = JsonConvert.SerializeObject(new SimpleFileContainer(“Name”, “Path”)); var deserialised = JsonConvert.DeserializeObject(json); Assert.That(deserialised.Name, Is.EqualTo(“Name”); 除非我将属性设置为public或添加更新具有以下属性的类,否则Name和Path属性都为null: […]

System.Core.dll中发生了未处理的“System.StackOverflowException”类型exception

在我的Asp.net MVC项目中 我有一个初始化统一容器的bootsrapper。 我不知道为什么,但我明白了 System.Core.dll中发生了未处理的“System.StackOverflowException”类型exception 我已经加倍检查,只在我的初始化程序中完成注册。 所有依赖项仅在ctors中注入。 有什么可能导致这个? protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); Initializer.Initialize(); BundleConfig.RegisterBundles(BundleTable.Bundles); } 它在BundleConfig.RegisterBundles(BundleTable.Bundles);之后失败BundleConfig.RegisterBundles(BundleTable.Bundles); public static class Initializer { private static bool isInitialize; private static readonly object LockObj = new object(); private static IUnityContainer defaultContainer = new UnityContainer(); static Initializer() { Initialize(); } public static void Initialize() { if […]

适用于Windows窗体的可停靠自动隐藏面板控件

我正在创建一个Windows窗体应用程序,我希望SQL Server的Management Studio具有类似的外观,即左侧的一个漂亮的自动隐藏和可停靠面板。 类似的控件是Visual Studio的“工具箱”。 Management Studio的对象资源管理器是什么类型的控件? 我在哪里可以得到一个? 我在Windows Forms项目上使用.NET 3.5。 谢谢 -Matt

如何在代码中配置我的Windows服务以访问桌面?

我创建了一个Windows服务。 我想从这个服务打开一些基于Windows的应用程序。 但我的Windows服务无法启动桌面应用程序。 要启用访问权限,我必须执行以下步骤: 打开管理工具“服务” 右键单击我的服务,必须选择“属性” 然后在“登录”选项卡上,选择“允许服务与桌面交互”。 之后,我的服务可以打开所需的基于Windows的进程。 我可以在代码(C#)中配置我的Windows服务来访问桌面,这样我就不必在安装后手动更改访问权限了吗?

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(); ,但我宁愿有一些没有可能的副作用或不必要的开销。