问题列表 - 第2115页

在哪里练习Lambda功能?

我目前正在尝试学习C#3.0的所有新功能.我找到了一个非常好的样本集合来练习LINQ,但我找不到类似Lambda的东西.

你有一个我可以练习Lambda功能的地方吗?

更新

LINQpad非常适合学习Linq(对于那个建议的人来说是thx)并且在某些表达中使用了一点Lambda.但是我会对Lambda的更具体的练习感兴趣.

c# lambda .net-3.5 c#-3.0

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

在单元测试中创建System.Web.Caching.Cache对象

我正在尝试为没有单元测试的项目中的函数实现单元测试,并且此函数需要System.Web.Caching.Cache对象作为参数.我一直试图通过使用诸如......之类的代码来创建这个对象.

System.Web.Caching.Cache cache = new System.Web.Caching.Cache();
cache.Add(...);
Run Code Online (Sandbox Code Playgroud)

...然后将'cache'作为参数传递,但Add()函数导致NullReferenceException.到目前为止,我最好的猜测是我不能在单元测试中创建这个缓存​​对象,需要从HttpContext.Current.Cache中检索它,我显然在单元测试中没有访问权限.

如何对需要System.Web.Caching.Cache对象作为参数的函数进行单元测试?

c# asp.net

9
推荐指数
1
解决办法
4644
查看次数

罐子安全

我有一个独立的Java应用程序,它有一些我想要保护的许可代码,即阻止用户更改我的软件以规避许可.做这个的最好方式是什么?

我看过混淆,但这需要各种各样的问题:反射,序列化,混乱的堆栈跟踪等.也许jar签名可能是一个解决方案?但是如何在运行时验证jar?如何确保用户不更改jar验证码?

java security

5
推荐指数
1
解决办法
1947
查看次数

你怎么能在网页上编辑有效的XML?

我必须启动并运行快速而脏的配置编辑器.流程如下:

配置(服务器上的POCO)序列化为XML.
此时XML已经很好地形成了.配置将发送到XElements中的Web服务器.
在Web服务器上,XML(是,所有IT)被转储到textarea中进行编辑.
用户直接在网页中编辑XML并单击"提交".
在响应中,我检索XML配置的更改文本.此时,所有转义都已通过在网页中显示它们的过程恢复.
我尝试将字符串加载到XML对象(XmlElement,XElement,等等).KABOOM.

问题是序列化会转义属性字符串,但在转换过程中会丢失.

例如,假设我有一个具有正则表达式的对象.以下是Web服务器的配置:

<Configuration>
  <Validator Expression="[^&lt;]" />
</Configuration>
Run Code Online (Sandbox Code Playgroud)

所以,我把它放到textarea中,它对用户来说是这样的:

<Configuration>
  <Validator Expression="[^<]" />
</Configuration>
Run Code Online (Sandbox Code Playgroud)

因此,用户稍作修改并将更改提交回来.在Web服务器上,响应字符串如下所示:

<Configuration>
  <Validator Expression="[^<]" />
  <Validator Expression="[^&]" />
</Configuration>
Run Code Online (Sandbox Code Playgroud)

因此,用户添加了另一个验证器,现在BOTH具有非法字符的属性.如果我尝试将其加载到任何XML对象中,它会抛出异常,因为<和&在文本字符串中无效.我不能不能使用任何类型的编码功能,因为它编码整个血腥的东西:

var result = Server.HttpEncode(editedConfig);

结果是

&lt;Configuration&gt;
  &lt;Validator Expression="[^&lt;]" /&gt;
  &lt;Validator Expression="[^&amp;]" /&gt;
&lt;/Configuration&gt;
Run Code Online (Sandbox Code Playgroud)

这不是有效的XML.如果我尝试将其加载到任何类型的XML元素中,我将会被一个下降的铁砧击中.我不喜欢掉落的铁砧.

那么,问题仍然存在......我是否可以通过使用正则表达式替换来获得解析为XML对象的XML字符串的唯一方法?我加载时有没有办法"关闭约束"?你怎么绕过这个?


最后一个回应,然后维基化,因为我认为没有一个有效的答案.

我在textarea中放置的XML是有效的,转义的XML.1)将其放入文本区域的过程2)将其发送给客户端3)将其显示给客户端4)提交表单,然后将其发送回服务器,以及6)从表格中检索值REMOVES任何和所有逃脱.

让我再说一遍:我不会逃避任何事情.只需在浏览器中显示它就可以了!

需要考虑的事项:有没有办法阻止这种逃避行为的发生?有没有办法采用几乎有效的XML并以安全的方式"清理"它?


这个问题现在有了它的赏金.要收集赏金,您将演示如何在浏览器窗口中编辑VALID XML而不使用第三方/开源工具,该工具不需要我使用正则表达式手动转义属性值,这不需要用户转义其属性,并且在往返时不会失败(& amp; amp; amp; etc;)

c# xml serialization character-encoding

4
推荐指数
2
解决办法
2129
查看次数

DataGridViewCheckBoxCell断开 - >值结果

我正在使用DataGridViewCheckBoxCell,但我无法弄清楚如何让 - > Value属性"正确"工作.

for (int i = this->dgvConfigs->Rows->Count - 1; i >= 0 ; i --){
  DataGridViewCheckBoxCell^ dgvcbc = (DataGridViewCheckBoxCell^) this->dgvConfigs->Rows[i]->Cells[2];
  // This is truely a weird behavior of the DataGridViewCheckBoxCell

  if (dgvcbc->Value->ToString() == "True"){
    // Do stuff
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我无法弄清楚 - >价值可能是什么.当我测试

dgvcbc->Value == true
Run Code Online (Sandbox Code Playgroud)

它永远不会触发,或

dgvcbc->Value == dgvcbc->TrueValue
Run Code Online (Sandbox Code Playgroud)

当我在调试器中查看这些值时,它们都是"{true}",但是等式永远不会被评估为true

我甚至试过了

dgvcbc->TrueValue = true;
dgvcbc->Value == dgvcbc->TrueValue
Run Code Online (Sandbox Code Playgroud)

再次,两者都显示为"{true}",但// Do Stuff永远不会匹配

.net c++ forms datagridviewcheckboxcell

0
推荐指数
1
解决办法
981
查看次数

读者/作者用C++锁定

我正在寻找一个很好的C++读写器锁.我们有一个不常见的作家和许多常见读者的用例,并希望为此进行优化.我更喜欢跨平台的解决方案,但只有Windows可以接受.

c++ multithreading locking

63
推荐指数
6
解决办法
7万
查看次数

如何访问ASP.NET控件的内容?

我想知道是否有可能做这样的事情:

    <uc1:TestControl ID="TestControl1" runat="server">
        <div>More random HTML, etc...</div>
    </uc1:TestControl>
Run Code Online (Sandbox Code Playgroud)

我收到一个错误"类型'System.Web.UI.UserControl'没有名为'div'的公共属性." 做了一点研究,我发现我可以将以下属性添加到服务器控件:

[ParseChildren(false)]
public partial class TestControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
}
Run Code Online (Sandbox Code Playgroud)

是否可以从ASP.NET控件中读取内容?

编辑:更改了措辞以反映我很好奇,如果您可以使用服务器或用户控件执行此操作

asp.net controls

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

线程问题在Java HashMap中

发生了一些我不确定应该可行的事情.显然它是,因为我已经看过了,但我需要找到根本原因而且我希望你们都能提供帮助.

我们有一个查找纬度和经度的邮政编码系统.我们不是每次都访问它,而是将结果缓存在廉价的内存中HashTable缓存中,因为邮政编码的纬度和长度往往比我们发布的更少.

无论如何,哈希被一个具有"get"和"add"方法的类所包围,这两个方法都是同步的.我们以单身形式访问此类.

我并不是说这是最好的设置,但它就是我们所处的位置.(我计划更改为尽快将Map包装在Collections.synchronizedMap()中.)

我们在多线程环境中使用此缓存,其中我们为2个拉链进行2次调用(因此我们可以计算两者之间的距离).这些有时几乎同时发生,因此两个调用很可能同时访问地图.

就在最近,我们遇到了两个不同邮政编码返回相同值的事件.假设初始值实际上是不同的,有没有办法将值写入Map会导致为两个不同的键写入相同的值?或者,2"获取"是否有任何方式可以交叉电线并意外返回相同的值?

我唯一的另一个解释是初始数据已损坏(错误的值),但似乎不太可能.

任何想法,将不胜感激.谢谢,彼得

(PS:如果您需要更多信息,代码等,请告诉我)

public class InMemoryGeocodingCache implements GeocodingCache
{

private Map cache = new HashMap();
private static GeocodingCache instance = new InMemoryGeocodingCache();

public static GeocodingCache getInstance()
{
    return instance;
}

public synchronized LatLongPair get(String zip)
{
    return (LatLongPair) cache.get(zip);
}

public synchronized boolean has(String zip)
{
    return cache.containsKey(zip);
}

public synchronized void add(String zip, double lat, double lon)
{
    cache.put(zip, new LatLongPair(lat, lon));
}
}


public class LatLongPair {
double lat;
double lon;

LatLongPair(double …
Run Code Online (Sandbox Code Playgroud)

java collections concurrency multithreading hashmap

3
推荐指数
2
解决办法
3709
查看次数

如何用Bacula备份一个巨大的文件?

它目前是700MB,但可以想象它将超过1GB.通常我只是将此文件复制到另一个位置(对于好奇的,它是Zope实例的数据库,ZODB文件).

这个文件每天都变化不大,但我知道Bacula无法对增量备份进行内部细分.无论如何,没关系.我想做的是每天进行一次完整备份,每周保留两个并完整备份,并保留其中两个.所以在任何时候我都可以在昨天,前一天,一周前和两周前得到.你认为这是个好主意吗?

我想我应该每天和每周做两个时间表.但是我应该在卷和池上有哪些数字来实现这个目标?两卷1.5GB?欢迎任何提示或指导,我不是系统管理员,我对Bacula的经验非常有限.

backup zope bacula

5
推荐指数
1
解决办法
1941
查看次数

你如何对单元测试进行单元测试?

我在MVCStoreFront应用程序上观看Rob Connerys的网络广播,我注意到他甚至是最普通的东西,例如:

public Decimal DiscountPrice
{
   get
   {
       return this.Price - this.Discount;
   }
}
Run Code Online (Sandbox Code Playgroud)

会有一个测试像:

[TestMethod]
public void Test_DiscountPrice
{
    Product p = new Product();
    p.Price = 100;
    p.Discount = 20;
    Assert.IsEqual(p.DiscountPrice,80);
}
Run Code Online (Sandbox Code Playgroud)

虽然,我都是单元测试,但我有时想知道这种形式的测试首次开发是否真的有益,例如,在实际过程中,您的代码上方有3-4层(业务请求,需求文档,架构文档) ,实际定义的业务规则(折扣价格是价格 - 折扣)可能被错误定义.

如果是这种情况,您的单元测试对您来说毫无意义.

此外,您的单元测试是另一个失败点:

[TestMethod]
public void Test_DiscountPrice
{
    Product p = new Product();
    p.Price = 100;
    p.Discount = 20;
    Assert.IsEqual(p.DiscountPrice,90);
}
Run Code Online (Sandbox Code Playgroud)

现在测试存在缺陷.显然,在一个简单的测试中,这没什么大不了的,但是我们说我们正在测试一个复杂的业务规则.我们在这里获得了什么?

快速推进应用程序生命的两年,当维护开发人员维护它时.现在业务改变了规则,测试再次中断,一些菜鸟开发人员然后错误地修复了测试......我们现在又有了另一个失败点.

我所看到的只是更多可能的失败点,没有真正有益的回报,如果折扣价格错误,测试团队仍然会发现问题,单元测试如何保存任何工作?

我在这里错过了什么?请教我爱TDD,因为到目前为止我很难接受TDD.我也想要,因为我想保持进步,但这对我来说没有意义.

编辑:有几个人一直提到测试有助于执行规范.根据我的经验,规范也是错误的,通常是错误的,但也许我注定要在一个组织中工作,这些组织的规范是由那些不应该编写规范的人编写的.

tdd agile test-first

89
推荐指数
9
解决办法
4444
查看次数