小编Ste*_*unn的帖子

在任务并行库周围是否有一个接口包装器,以便我可以将其换出进行单元测试?

我刚才问了这个问题.我现在知道这是一个坏主意,并且应该抽象封装任务的调度和运行,以便可以从单元测试中传入同步调度程序.

我目前使用的是使用任务并行库(TPL)的代码,我想ITaskScheduler在我的类型中注入一些东西来提取调度的责任,并使我能够在我的测试中传递同步替代方案.

这样的事情存在吗?我正在寻找包装Task.Factory.StartNew和包装的东西Task.ContinueWith.我不认为它没有太多的工作推出自己的,但我敢肯定有很多小的陷阱,我真的不希望花时间做,如果有一个已经可用.

.net multithreading unit-testing task-parallel-library

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

我可以在GitHub中创建多个分支吗?

不久前,我分叉了一个项目,并进行了一些更改。其中一些更改被拉回到原始项目中,而某些则没有。

其他人叉了我的叉子,因为他们发现没有拉到原始有用的更改。

现在,我想再次分叉原始项目,因为我还想做出更多更改。

我不想删除原始的分叉,因为它有一些有用的东西,但是我想再次分叉以进行最新更改。

我可以这样做吗?

git github

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

我是否可以强制执行POCO中的字段只能在类型初始化器中设置?

如果我有这样的POCO:

[Poco]
public class MyPoco
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Address { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

......它的初始化如下:

new MyPoco { FirstName = "Joe", LastName="Bloggs", Address="123 Abc St." }
Run Code Online (Sandbox Code Playgroud)

我是否可以在NDepend中使用CQL,确保只使用上面的对象初始化程序设置属性,而不是单独设置.

我正试图抓住这样的代码:

myPoco.FirstName="John";
doSomething(myPoco);
Run Code Online (Sandbox Code Playgroud)

...我不希望人们在现有的POCO上设置属性.我理解我可以创建setter private,但我不喜欢传入构造函数中的所有属性,因为你最终会得到一个签名MyPoco(string, string, string)- 使得更容易错位参数(比使用对象初始化语法更容易)

所以,我想用NDepend来捕获它.这是我的CQL查询的开始:

from f in JustMyCode.Fields.Where(f=>
   f.ParentType.HasAttribute ("JetBrains.Annotations.PocoAttribute".AllowNoMatch())) 
       where f.MethodsAssigningMe [I'M STUMPED HERE]
Run Code Online (Sandbox Code Playgroud)

看起来我可以分析设置POCO属性的方法,但是我需要更低一步并检查代码块以查看它是否在对象初始化块中.

这可能吗?

c# code-analysis ndepend cql poco

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

TPL DataFlow是否包含在.NET 4.5或.NET 4.5.1中?

我糊涂了.我们最近将项目升级到.NET 4.5.1.我们在服务器上安装了.NET 4.5.1.

我正在引用System.Threading.Tasks.DataflowGAC的汇编C:\windows\Microsoft.Net\assembly\GAC_MSIL\System.Threading.Tasks.Dataflow\v4.0_4.5.9.0__b03f5f7f11d50a3a\System.Threading.Tasks.Dataflow.dll

CopyLocal 设置为false,因为(我假设)它是Framework的一部分,因此应该已经安装在部署应用程序的任何位置.

问题是,当在服务器上运行时,它说它找不到这个程序集.

我读过这里 .NET框架4.5的一部分:

但是这个库现在内置了.NET 4.5.

......我在这里读到它不是!

TPL数据流库(System.Threading.Tasks.Dataflow命名空间)不随.NET Framework 4.5一起分发

是什么赋予了?它看起来不像.它只是'目标包'的一部分吗?是我,或者这些就地升级是否比它们的价值更具农业价值?!

task-parallel-library .net-4.5

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