小编Buu*_*yen的帖子

使用任务并行库时如何处理所有未处理的异常?

我在.NET 4.0中使用TPL(任务并行库).我想通过使用Thread.GetDomain().UnhandledException事件集中处理所有未处理异常的处理逻辑.但是,在我的应用程序中,从未使用TPL代码启动的线程触发事件,例如Task.Factory.StartNew(...).如果我使用类似的东西,事件确实会被解雇new Thread(threadStart).Start().

这篇MSDN文章建议使用Task.Wait()来捕获AggregateException使用TPL的时间,但这不是我想要的,因为这种机制不够"集中".

有没有人遇到过同样的问题,还是仅仅是我?你对此有什么解决方案吗?

.net multithreading .net-4.0 task-parallel-library unobserved-exception

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

AngularJS - 如何覆盖指令ngClick

我想覆盖指令ng-click:在每次执行ng-click之前对某些进行一些$ rootscope的更改.怎么做?

angularjs angularjs-directive angularjs-ng-click

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

如何实施Moles隔离框架?

Moles是Microsoft创建的隔离框架.Moles的一个很酷的功能是它可以"模拟"静态/非虚拟方法和密封类(这对于像Moq这样的框架是不可能的).以下是Moles可以做的快速演示:

Assert.AreNotEqual(new DateTime(2012, 1, 1), DateTime.Now);

// MDateTime is part of Moles; the below will "override" DateTime.Now's behavior
MDateTime.NowGet = () => new DateTime(2012, 1, 1); 
Assert.AreEqual(new DateTime(2012, 1, 1), DateTime.Now);
Run Code Online (Sandbox Code Playgroud)

看起来像Moles能够DateTime.Now在运行时修改CIL主体.由于Moles不是开源的,我很想知道Moles使用哪种机制来在运行时修改方法的CIL.谁能摆脱任何光明?

.net c# mocking isolation-frameworks moles

22
推荐指数
1
解决办法
3259
查看次数

在SQL Server中创建索引的最佳实践和反模式?

在为SQL Server定义索引(群集和非群集)时,您会考虑哪些事项?DB新手应该注意哪些反模式?请解释"为什么"或尽可能提供参考.

database sql-server database-design

17
推荐指数
1
解决办法
8473
查看次数

在2个.NET程序集中使用相同名称和命名空间的类型

出于好奇,我创建了两个程序集,它们都有一个Class1具有完全相同名称空间(Library1)的class ().然后我创建另一个引用这两个程序集的客户端,并尝试创建一个实例Class1.

毫不奇怪,编译器给出了关于模糊引用的编译错误.有没有办法明确指定我想要使用的程序集中的类型以避免歧义?

注意:我很少知道,如果有的话,在实践中发生.这只是一个关于语言特征的好奇心的问题.

.net c# msbuild namespaces assembly-resolution

12
推荐指数
1
解决办法
4934
查看次数

如何在ASP.NET MVC 2 RC中编写自定义客户端jQuery验证?

我已经阅读了Phil Haack关于ASP.NET MVC 2中自定义客户端验证的帖子.我想做同样的事情但是使用jQuery适配器并使用ASP.NET MVC 2 RC(而不是MVC 2 Beta那个帖子)使用).有没有人能够想到如何做到这一点?

我特别想实现密码匹配验证(即密码和确认密码必须匹配).ASP.NET MVC 2 RC VS.NET项目模板确实展示了如何在服务器端(使用PropertiesMustMatchAttribute)实现它,而不是在客户端实现.

validation asp.net-mvc asp.net-mvc-2

12
推荐指数
1
解决办法
5427
查看次数

生成动态方法以设置结构的字段而不是使用反射

假设我有以下代码更新struct使用反射的字段.由于struct实例被复制到DynamicUpdate方法中,因此需要在传递之前将其装箱到对象.

struct Person
{
    public int id;
}

class Test
{
    static void Main()
    {
        object person = RuntimeHelpers.GetObjectValue(new Person());
        DynamicUpdate(person);
        Console.WriteLine(((Person)person).id); // print 10
    }

    private static void DynamicUpdate(object o)
    {
        FieldInfo field = typeof(Person).GetField("id");
        field.SetValue(o, 10);
    }
}
Run Code Online (Sandbox Code Playgroud)

代码工作正常.现在,假设我不想使用反射,因为它很慢.相反,我想生成一些CIL直接修改id字段并将该CIL转换为可重用的委托(例如,使用动态方法功能).特别是,我想用s/t替换上面的代码,如下所示:

static void Main()
{
    var action = CreateSetIdDelegate(typeof(Person));
    object person = RuntimeHelpers.GetObjectValue(new Person());
    action(person, 10);
    Console.WriteLine(((Person)person).id); // print 10
}

private static Action<object, object> CreateSetIdDelegate(Type t)
{
    // build dynamic method …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection reflection.emit dynamic-method

11
推荐指数
3
解决办法
7705
查看次数

C#4.0'vynamic'不设置ref/out参数

我在试验DynamicObject.我尝试做的一件事是设置ref/ outarguments 的值,如下面的代码所示.但是,我不能够拥有的价值观 i,并jMain()正确设置(即使它们被正确设定TryInvokeMember()).有没有人知道如何DynamicObject使用ref/ outarguments 调用对象并能够检索方法中设置的值?

class Program
{
    static void Main(string[] args)
    {
        dynamic proxy = new Proxy(new Target());
        int i = 10;
        int j = 20;
        proxy.Wrap(ref i, ref j);
        Console.WriteLine(i + ":" + j); // Print "10:20" while expect "20:10"
    }
}

class Proxy : DynamicObject
{
    private readonly Target target;

    public Proxy(Target target)
    {
        this.target = target;
    }

    public …
Run Code Online (Sandbox Code Playgroud)

c# dynamic pass-by-reference

11
推荐指数
2
解决办法
4328
查看次数

每个开发人员都应该知道的ADO.NET实体框架性能提示

每个ADO.NET EF开发人员应该了解哪些性能提示?

请将每个提示放在每个答案中并解释为什么提示是好的(例如通过最小化DB往返).

.net ado.net entity-framework

10
推荐指数
2
解决办法
2194
查看次数

在ASP.NET MVC中管理ADO.NET实体框架ObjectContext

我在MVC应用程序中使用ADO.NET EF.我正在考虑将ObjectContext放在HttpContext.Current中,以便同一请求中的所有逻辑都可以访问它,而不必每次都打开/销毁.但是,我确定这是否是管理ObjectContext实例的好方法.关于这个需求我有2个问题:

  1. 由于HttpContext.Current属性由线程局部字段支持,并且ASP.NET使用池中的线程来处理请求,因此通过请求放入HttpContext.Current的ObjectContext实例可能对后续运行的请求可见.来自游泳池的同一个帖子?

  2. 您如何认为应该在ASP.NET MVC中管理ObjectContext以避免大量打开/处置并防止竞争条件?

asp.net-mvc multithreading entity-framework

9
推荐指数
2
解决办法
4848
查看次数