小编S. *_*ert的帖子

统一解析同一类型的多个实例

我想做一个简单的多种类型注册解决方案(最终注入构造函数,但使用.Resolve来查看Unity是否能够执行此类操作.

在下面的每种情况下,Unity都会解析0应该解决的项目2.

是否有一些团结的转变可以打开2007年后的行为?还是我只是大失所想?

这是我的代码:

public interface IFoo {}
public class Foo1 : IFoo{}
public class Foo2 : IFoo{}

class Program
{
    static void Main(string[] args)
    {
        var container = new UnityContainer();
        container.RegisterType<IFoo, Foo1>();
        container.RegisterType<IFoo, Foo2>();

        // container.Resolve<IEnumerable<IFoo>>();   returns 0
        // container.ResolveAll<IFoo>(); returns 0

        var foos = container.Resolve<IFoo[]>();
        Console.WriteLine(foos.Count());

        Console.ReadLine();

    }
}
Run Code Online (Sandbox Code Playgroud)

c# ioc-container unity-container

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

无头击倒视图模型测试与摩卡

我正在尝试对我的淘汰视图模型进行无头测试.我故意避免在我的viewmodel中处理任何ui构造并将连接保留到html页面.

这在Jasmine中很有效,因为它在浏览器中运行,但是当我切换到mocha时,我最终会先进入淘汰赛的最后一行,即:

})(窗口,文件,导航器);

我已经看过使用zombiejs这将是一个不错的选择,但我没有看到如何使用它而不改变淘汰源本身的好故事.

有关如何处理此问题的任何想法?

mocha.js knockout-2.0 knockout.js

11
推荐指数
1
解决办法
2454
查看次数

设置TeamCity以使用命名位置拉出多个git repos

我在创建依赖于两个git repos的TeamCity项目构建时遇到问题.特别是,主要内容中的内容依赖于共享仓库.这不是理想的,需要改变(也就是将所有共享组件推入nuget),但首先要做的事情.

构建机器需要两个兄弟结帐文件夹:"项目"和"共享".然后,从"Project"文件夹中,我想启动一个rake任务.

Teamcity似乎拉出了第一个'Project'仓库,checkout到/ work文件夹然后将其删除并用'Shared'仓库中的结账替换它.

关于如何正确拉动的任何想法?

谢谢,-Steve

git teamcity

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

是否可以在autofac中注册开放的通用委托?

我想注册一个在运行时自行解决的通用委托,但是我找不到在通用代理上执行此操作的方法。

给定一个看起来像这样的代表:

public delegate TOutput Pipe<in TInput, out TOutput>(TInput input);
Run Code Online (Sandbox Code Playgroud)

并给一个离散注册的委托,看起来像这样:

public class AnonymousPipe<TInput, TOutput>
{
   public Pipe<TInput, TOutput> GetPipe(IContext context)
   {...}
Run Code Online (Sandbox Code Playgroud)

我想按照以下方式注册一个函数:

builder.RegisterGeneric(typeof(Pipe<,>)).As(ctx => 
{
   var typeArray = ctx.RequestedType.GetGenericArguments();
   // this can be memoized 
   var pipeDefinition = ctx.Resolve(typeof(AnonymousPipe<,>).MakeGenericType(typeArray));

   return pipeDefinition.GetPipe(ctx);
Run Code Online (Sandbox Code Playgroud)

我找不到在Autofac中作为参数提供泛型实现的方法-我可能只是缺少了一些东西。我知道我可以通过通用对象或接口来做到这一点,但我想坚持委托的轻巧性。这使得注入这些单元测试超级简单。

有什么想法吗?我现在必须进行离散注册(每个类型组合一个,没有泛型)。

function autofac

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