小编Mar*_*cel的帖子

如何在运行时错误的情况下使用IronPython与C#/ .NET作为主机时获取违规行?

被标题混淆了?让我解释一下:我使用IronPython在.NET进程(我的C#应用​​程序是主机)中执行python脚本:

ScriptEngine python = Python.CreateEngine();
ScriptSource pyFromFileSource = python.CreateScriptSourceFromString(script);
CompiledCode pyFromFileCode = pyFromFileSource.Compile();
ScriptRuntime runtime = engine.Runtime;
ScriptScope scope = runtime.CreateScope(); //get a scope where we put in the stuff from the host
scope.SetVariable("lab", this); //allow usage of this class in the script
script.Execute(scope);
Run Code Online (Sandbox Code Playgroud)

上面显示的代码在后台线程中运行(使用Task该类).该脚本包含一个错误,导致IronPython.Runtime.Exceptionis.TypeErrorException冒泡.我可以抓住这个,并得到消息.
但是如何获取导致异常的脚本行或行号?

.net python runtime exception

8
推荐指数
2
解决办法
1883
查看次数

在处理大型集合时优化jQuery selector/addBack()

我使用jQuery故意从潜在的大型html表中的元素中删除css类.请参阅下面的解释为什么我这样做.

目前我这样做:

var tableElements = $("#TreeListElemente").find("*").addBack();
tableElements.removeClass("dxtl dxtl__B2 dxtl__B0 dxtlSelectionCell dxtlHeader dxtl__B3 dxtlControl dx-wrap dxtl__IM dxeHyperlink");
Run Code Online (Sandbox Code Playgroud)

该表有时很大并且有许多元素.我想加快页面加载/ DOM操作.

IE的内置Javascript探查器告诉我,特别是.addBack()很慢.它似乎做了某种排序,这对我的用例完全没用.我可以摆脱它吗?除了addBack()之外,还有另一种方法可以包含所选元素本身吗?

IE javascript探查器树视图

IE javascript profiler:大约60000个元素的集合的执行时间.包容性时间在第三列

或者是否有另一种更有效的方法从大量元素中删除类,选择元素,本身和所有子元素?

注意:为什么我这样做:我使用DevXpress TreeList组件,它带有自己的样式.没有简单的方法在服务器端"unstyle it",因此我选择做客户端,就像上面演示的那样.最后,我选择TreeList,所有子元素,并从中删除相关的css类.

更新/解决方案1

我成功实施了FrédéricHamidi提出的解决方案,取得了很大的进步:

IE javascript探查器树视图

IE javascript profiler:使用Frederic提议的大约60000个元素的集合的执行时间.包容性时间在第三列

addBack()操作所需的时间刚刚消失,只剩下其他的东西了.这意味着整体提高了4倍以上.好极了!

更新/解决方案2

我还实施了A. Wolff提出的解决方案并获得了一些改进:

IE javascript探查器树视图

IE javascript profiler:使用A. Wolff提议的大约60000个元素的集合的执行时间.包容性时间在第三列

find()操作所需的时间消失了,只剩下其他的东西了.这意味着我的机器略微改进了大约10毫秒.凉!

这是我现在使用的解决方案:

$("#TreeListElemente, #TreeListElemente [class]").removeClass("dxtl dxtl__B2 dxtl__B0 dxtlSelectionCell dxtlHeader dxtl__B3 dxtlControl dx-wrap dxtl__IM dxeHyperlink");
Run Code Online (Sandbox Code Playgroud)

javascript css performance jquery

8
推荐指数
1
解决办法
143
查看次数

特殊文件夹"Common Application Data Folder"在我的安装项目中不可用.为什么?

我想创建一个Visual Studio 2010安装项目,将一些文件部署到我的应用程序可以使用它的文件夹中.我希望如此,所有用户都拥有相同的文件,并且他们也可以在没有管理员权限的情况下操纵它们.

因此,如本MSDN文章中所述的 "通用应用程序数据文件夹"*似乎很好.

但是,在我的Visual Studio 2010安装项目中,我没有在"添加特殊文件夹..."下拉菜单中找到"通用应用程序数据文件夹".

我有一个.NET 4.0 WinForms应用程序,并没有看到为什么这不显示.用户的通用应用程序数据文件夹是有的,但我的用途不匹配.

谢谢你的任何提示!

setup-project visual-studio-2010 special-folders winforms

7
推荐指数
2
解决办法
7990
查看次数

避免使用带有<pre>之类的HTML标记的XSS

我有一个简单的网页,它接收查询项目并将它们制作到页面中.示例网址:

http://quir.li/player.html?media=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D0VqTwnAuHws
Run Code Online (Sandbox Code Playgroud)

然后该页面的URL显示在页面的某个位置:

<span id="sourceUrlDisplay">http://www.youtube.com/watch?v=0VqTwnAuHws</span>
Run Code Online (Sandbox Code Playgroud)

我觉得如果页面加载了包含类似内容的URL,这会使页面容易受到XSS的攻击

http://quir.li/player.html?media=<script>alert('test')</script>
Run Code Online (Sandbox Code Playgroud)

我发现,将URL呈现为<pre>标记并没有帮助.有没有一个简单的解决方案,就像一个HTML标签,其内容真的没有被解释,只是打印出来?

注意:这个问题此问题有些类似,但更为一般.

html tags xss pre

7
推荐指数
1
解决办法
4679
查看次数

什么是Silverlight?(一句话,在一次采访中)

考虑一下您正在接受.NET/C#工作的采访,并被问到:

什么是Silverlight,一句话?

编辑:好的,有些人采取了有趣的方式:-)我已经接受了一个更严肃的方法.但是,感谢所有海报.

.net c# silverlight

6
推荐指数
3
解决办法
864
查看次数

(深层)单元测试中对象与引用的比较(C#)

在单元测试中(在Visual Studio 2008中)我想比较一个大对象(确切地说是自定义类型列表)的内容与该对象的存储引用.目标是确保代码的任何后续重构产生相同的对象内容.

丢弃的想法:首先想到的是序列化为XML,然后比较硬编码字符串或文件内容.这样可以轻松找到任何差异.但是,由于我的类型不是没有黑客的XML序列化,我必须找到另一个解决方案.我可以使用二进制序列化,但这将不再可读.

有一个简单而优雅的解决方案吗?

编辑:根据Marc Gravell的建议,我现在喜欢这样:

using (MemoryStream stream = new MemoryStream())
        {
            //create actual graph using only comparable properties
            List<NavigationResult> comparableActual = (from item in sparsed
                                                       select new NavigationResult
                                                       {
                                                           Direction = item.Direction,
                                                           /*...*/
                                                           VersionIndication = item.VersionIndication
                                                       }).ToList();

            (new BinaryFormatter()).Serialize(stream, comparableActual);
            string base64encodedActual = System.Convert.ToBase64String(stream.GetBuffer(), 0, (int)stream.Length);//base64 encoded binary representation of this                
            string base64encodedReference = @"AAEAAAD....";//this reference is the expected value
            Assert.AreEqual(base64encodedReference, base64encodedActual, "The comparable part of the sparsed set is not equal to the reference.");
        } …
Run Code Online (Sandbox Code Playgroud)

c# comparison unit-testing object visual-studio

6
推荐指数
1
解决办法
742
查看次数

如何使用OfType <>过滤到泛型类型的所有变体

我想List<ISeries>使用OfType <> 过滤使用其类型的对象.我的问题是,某些对象属于通用接口类型,但它们没有自己的公共继承接口.

我有以下定义:

public interface ISeries
public interface ITraceSeries<T> : ISeries
public interface ITimedSeries : ISeries
//and some more...
Run Code Online (Sandbox Code Playgroud)

我的列表包含各种类型ISeries,但现在我想只获取ITraceSeries对象,而不管它们实际定义的泛型类型参数,如下所示:

var filteredList = myList.OfType<ITraceSeries<?>>(); //invalid argument!
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

一个不受欢迎的解决方案是引入一个ITraceSeries继承自的类型ISeries:

public interface ITraceSeries<T> : ITraceSeries
Run Code Online (Sandbox Code Playgroud)

然后,ITraceSeries用作过滤器.但这并没有真正添加新信息,只会使继承链更复杂.

在我看来,这似乎是一个常见问题,但我没有在SO或网络上找到有用的信息.感谢帮助!

c# linq generics filter oftype

6
推荐指数
1
解决办法
2558
查看次数

精度和比例在Oracle NUMBER数据类型中意味着什么

我一直在阅读oracle DB的初学者指南.精度和规模的定义非常混乱.书说:

number(6,3) 

Oracle allows for 2 not 6 significant digitalis.
Run Code Online (Sandbox Code Playgroud)

我的问题是,6意味着精确.这意味着有效位数.所以它应该接受6位有效数字.为什么这本书说这是2位有效数字

我指的是Oracle数据库11g,McGraw Hill Professional的初学者指南,2008年12月18日,第12页

oracle oracle10g oracle11g sqldatatypes

6
推荐指数
1
解决办法
3万
查看次数

HTML5:如何使用AngularJS将焦点设置在列表中的文本输入上

我使用AngularJS和ng-repeat指令将一个对象数组显示为一个列表.

<li ng-repeat="cue in cues" class="form-inline">
    <input type="text" ng-model="cues[$index].text" class="input-xlarge"/>
    {{cue.isNewest}}
</li>
Run Code Online (Sandbox Code Playgroud)

属性"isNewest"仅在数组的一个元素上为true.我想将键盘焦点设置在该项目的文本输入上.我怎么能用AngularJS做到这一点?

html5 focus input angularjs

6
推荐指数
1
解决办法
2万
查看次数

混合Angular.js和Bootstrap 3 - 不兼容的地方在哪里?

这是一个概念性问题.我正在考虑将AngularJS添加到我的下一个项目中,我已经选择使用Twitter Bootstrap 3进行UI控件.我看到两个框架之间的其他stackoverflow问题可能存在摩擦,但我不太确定两者之间可能存在不兼容性的根本原因是什么.

他们都听事件,但bootstrap主要是一个前端显示库,而在我看来,angular.js更深入.也许有人可以从根本上解释不兼容性开始出现的地方.希望以某种方式直接贷款,以确定在同一个项目中混合两者是一个好主意,或者如果这样做应该避免什么.这样可以节省大量的时间来通过调试来学习,因为它太晚了,或者首先避免使用错误的架构.

jquery events angularjs twitter-bootstrap-3

6
推荐指数
1
解决办法
1634
查看次数