小编Dun*_*can的帖子

Invoke调用中的匿名方法

我们想要在Control.Invoke中匿名调用委托的语法有点麻烦.

我们已经尝试了许多不同的方法,但都无济于事.

例如:

myControl.Invoke(delegate() { MyMethod(this, new MyEventArgs(someParameter)); }); 
Run Code Online (Sandbox Code Playgroud)

其中someParameter是此方法的本地

以上将导致编译器错误:

无法将匿名方法转换为类型'System.Delegate',因为它不是委托类型

.net c# compiler-errors anonymous-methods

124
推荐指数
6
解决办法
13万
查看次数

IFrame和Frame有什么区别?

查看在我自己的订单表单中嵌入3D Secure页面的选项,我遇到了以下内容:

"有些商业网站会将完整的浏览器页面用于身份验证,而不是使用框架(不一定是iFrame,无论如何都是一个不太安全的对象)."

来自http://en.wikipedia.org/wiki/3-D_Secure

有人可以给我一个关于为什么 iframe安全性较低并导致问题的低调,而不是正常的框架?有什么基本的区别?

我看到它iframe的方式是要走的路.

html iframe frame

87
推荐指数
6
解决办法
12万
查看次数

最大并发HttpWebRequests数

我正在对一个Web应用程序进行压力测试,并设置了一个Windows测试程序,该程序可以旋转多个线程并在每个线程上发出Web请求.

问题是我得到以下输出:

01/09/09 11:34:04 Starting new HTTP request on 10
01/09/09 11:34:04 Starting new HTTP request on 11
01/09/09 11:34:04 Starting new HTTP request on 13
01/09/09 11:34:05 Starting new HTTP request on 14
01/09/09 11:34:05 Starting new HTTP request on 11
01/09/09 11:34:05 11 has finished!
01/09/09 11:34:05 Starting new HTTP request on 13
01/09/09 11:34:05 13 has finished!
01/09/09 11:34:05 Starting new HTTP request on 14
01/09/09 11:34:05 14 has finished!
01/09/09 11:34:05 Starting new HTTP request on …
Run Code Online (Sandbox Code Playgroud)

.net multithreading httpwebrequest

62
推荐指数
4
解决办法
6万
查看次数

在为元素指定类名时转义方括号

有没有人知道如何在使用jQuery设置类名时转义方括号字符?

请尝试以下方法:

$('#txtFirstname').addClass('test[someval]')
Run Code Online (Sandbox Code Playgroud)

然后

$('#txtFirstname').attr('class')
Run Code Online (Sandbox Code Playgroud)

你会看到班级在那里.

现在试试

$('#txtFirstname').hasClass('test[someval]')
Run Code Online (Sandbox Code Playgroud)

失败

我能想到的唯一原因是方括号.

我需要这些用于我看到的jQuery验证.

任何建议赞赏

干杯邓肯

jquery

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

在类名中使用"Base"

在作为继承树底部的类名中使用"Base"这个词是否可以接受?

我总是发现这有点像一个警察,只是想知道是否有人同意我.

例如,如果我将MyClassA和MyClassB中的某些元素重构为公共基类,我很想创建一个MyBaseClass,两者继承.

但是如果我需要重构MyBaseClass会发生什么?MyBaseBaseClass?现在那真是太傻了.

我知道Rocky Lhotka不介意他的CSLA框架,但我总是对编程中的'definites'感到不安.

思考?

让我澄清为什么我甚至担心这一点.

我有两个名称空间 - MySpecificNamespace和MyCommonNamespace.正如您所料,MyNamespace使用MyCommonNamespace.

现在,我希望尽可能最大限度地使用命名空间来描述问题的上下文,并避免将上下文添加到类名中.因此,例如,考虑我在MyNamespace中有一个类,它来自MyCommonNamespace中的一个类.

选项A.

可以称之为

MySpecificClass: MyClass
{
}
Run Code Online (Sandbox Code Playgroud)

但后来我在名称中添加了"特定"(上下文) - 这是多余的,因为它已经在MySpecificNamespace中.

选项B.

MyClass: MyCommonNamespace.MyClass
{
}
Run Code Online (Sandbox Code Playgroud)

你可以看到我们在这里如何混淆,对吧?

选项C.

我觉得这个很可疑:

MyClass: MyBaseClass
{
}
Run Code Online (Sandbox Code Playgroud)

oop inheritance coding-style

28
推荐指数
5
解决办法
9001
查看次数

来自HTTP页面的通过AJAX的HTTPS请求

通过AJAX从标准HTTP页面调用HTTPS页面(例如信用卡授权服务,即WorldPay)会有任何问题吗?

我无法想象为什么会出现问题,响应将是一个HTML页面,然后我可以嵌入到结果窗格中或类似的?

ajax https

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

设置线程标识

在C#中,如何设置线程的标识?

例如,如果我已经启动了Thread MyThread,我可以更改MyThread的身份吗?

或者这不可能吗?

.net c# multithreading iidentity

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

Debug.Assert vs Exceptions

令人惊讶的我才能够找到SO关于这个主题的一个先前的问题,我只是想获得社会"信任投票"(或不!)我的做法.

我这样看是这样的:

  • Debug.Assert你的处置将是真实的状态的事情.当我们完全控制我们的环境时,例如在验证某些前后条件的方法中,将使用此方法.
  • 在出现特殊情况时使用例外情况.处理外部资源,即文件,数据库,网络等是很容易的.但...

在以下场景中它有点模糊.请注意,这是一个仅供参考的示例!

假设我们有MyClass类,它有一个公共属性MyMode和一个方法GetSomeValueForCurrentMode().将MyClass视为一个打算在库中发布(发布版本)以供其他开发人员使用的版本.

我们希望MyMode可以由此类的外部用户更新.现在,GetSomeValueForCurrentMode()有以下逻辑:

switch(MyMode)
{
case Mode.ModeA:
return val1;
case Mode.ModeB:
return val2;
default:
//Uh-uh this should never happen

}
Run Code Online (Sandbox Code Playgroud)

我在这里得到的是MyClass的用户将其置于无效状态.那我们该怎么办?

在默认情况下,我们应该Debug.Assertthrow new InvalidOperationException(或其他)?

有一句咒语说我们不应该信任我们班级的用户.如果我们选择Debug.Assert并将MyClass构建为发布版本(从而删除Debug Asserts),则该类的用户将无法获得他们将其置于无效状态的有用信息.但这与其他咒语相反,后者只表示在完全无法控制的事情发生时抛出异常.

我发现我围绕着这个问题 - 其中一个编程辩论似乎没有明确的'正确'答案.那么让我们投票吧!

编辑:我在相关的SO问题(使用断言或例外的合同设计?)中注意到了这个响应:

经验法则是,在尝试捕获自己的错误时应使用断言,在尝试捕获其他人的错误时应使用异常.换句话说,您应该使用异常来检查公共API函数的前提条件,以及何时获得系统外部的任何数据.您应该将断言用于系统内部的函数或数据.

对我而言,这是有道理的,并且可以与下面概述的'Assert then throw'技术结合使用.

欢迎思考!

.net exception assertions

17
推荐指数
3
解决办法
3648
查看次数

Linq PredicateBuilder - 多个OR

我正在尝试使用PredicateBuilder,如此处所述 - http://www.albahari.com/nutshell/predicatebuilder.aspx

以下代码

var predicate = PredicateBuilder.False<StreetDTO>();

        predicate = predicate.Or(p => p.Locality.Contains(criteria.Locality));
        predicate = predicate.Or(p => p.Name.Contains(criteria.Name));
        predicate = predicate.Or(p => p.Town.Contains(criteria.Town));

        List<StreetDTO> streetData = StreetData.Instance();

        var streetList = from street in streetData.Where(predicate)
                         select street;
Run Code Online (Sandbox Code Playgroud)

根据这个例子,据我所知,这应该有效

var newKids  = Product.ContainsInDescription ("BlackBerry", "iPhone");

var classics = Product.ContainsInDescription ("Nokia", "Ericsson")
                      .And (Product.IsSelling());
var query =
  from p in Data.Products.Where (newKids.Or (classics))
  select p;
Run Code Online (Sandbox Code Playgroud)

但我得到的只是

错误1无法从用法中推断出方法'System.Linq.Enumerable.Where(System.Collections.Generic.IEnumerable,System.Func)'的类型参数.尝试显式指定类型参数.

我正试图在LINQ'在职'获得一些理解,所以如果这是一个简单的问题,请道歉.

c# linq

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

存储库模式 - POCO还是IQueryable?

我是Repository Pattern的新手,在网上做了很多阅读之后,我对正在发生的事情有了大致的了解,但似乎存在想法冲突.

一个是IRepository应该返回的内容.

我想处理ONLY Pocos所以我会为每个聚合根提供一个IRepository实现,如下所示:

public class OrangeRepository: IOrangeRepository
{
  public Orange GetOrange(IOrangeCriteria criteria);
}
Run Code Online (Sandbox Code Playgroud)

其中IOrangeCriteria采用了许多特定于查找Orange的参数.

我的另一件事是一些数据后端 - 这就是我首先进入这种模式的原因.我想我会为每个实现一个实现,例如

OrangeRepositoryOracle,OrangeRepositorySQL,OrangeRepositoryMock等

我想保持它开放,以便我可以使用EF或NHibernate - 再次,如果我的IOrangeRepository处理POCO然后我会通过实现OrangeRepositoryNHibernate等将其封装在Repository本身中.

我在正确的路线上吗?

谢谢

编辑:感谢您的反馈,我没有其他任何人在此刻反弹这些想法,所以感谢!

repository-pattern

12
推荐指数
2
解决办法
2859
查看次数