小编bas*_*ner的帖子

为什么我不能再从Resharper的测试运行器进行单元测试?

事情进展顺利.谁知道改变了什么,但现在我最终得到:

单元测试运行器无法加载测试程序集:JetBrains.Resharper.TaskRunnerFramework.TaskException:抛出了类型'Microsoft.VisualStudio.TestTools.CommandLine.CommandLineParameterException'的异常.

有什么建议?

resharper unit-testing

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

IIS7和ARR以及WCF ......我们可以对应用服务器进行负载均衡吗?

也许我的产品需要考虑错误 - 但我想知道是否可以在IIS7中使用应用程序请求路由(ARR)来为我们的应用程序层加载平衡请求.

我们有一个Web服务器场.每个都将运行我们的MVC Web应用程序.我们通过Web应用程序防火墙和负载平衡设备来平衡这些服务器.反过来,他们将对我们的应用程序服务器进行WCF调用.我希望使用ARR来管理这些调用.

但是,在查看ARR之后,似乎就是重写来自客户端的URL.但这不是我们的情况如何运作.如果用户浏览到www.myapp.com/home/index,我们将依次对web.config中配置的服务进行WCF调用,以说明myappservice.foo.local/home/GetInfo.

如何配置此方案,或者我是否在查看错误的产品?

wcf iis-7

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

如何改变这种设计以避免垂头丧气?

假设我有一个从基类继承的对象集合.就像是...

   abstract public class Animal
    {

    }

    public class Dog :Animal
    {

    }

    class Monkey : Animal
    {

    }
Run Code Online (Sandbox Code Playgroud)

现在,我们需要喂养这些动物,但不允许他们知道如何喂养自己.如果他们可以,答案是直截了当的:

foreach( Animal a in myAnimals )
{
   a.feed();
}
Run Code Online (Sandbox Code Playgroud)

但是,他们不知道如何养活自己,所以我们想做这样的事情:

    class Program
{
    static void Main(string[] args)
    {
        List<Animal> myAnimals = new List<Animal>();

        myAnimals.Add(new Monkey());
        myAnimals.Add(new Dog());

        foreach (Animal a in myAnimals)
        {
            Program.FeedAnimal(a);
        }
    }

    void FeedAnimal(Monkey m) {
        Console.WriteLine("Fed a monkey.");
    }

    void FeedAnimal(Dog d)
    {
        Console.WriteLine("Fed a dog.");
    }

}
Run Code Online (Sandbox Code Playgroud)

当然,这不会编译,因为它会迫使垂头丧气.

感觉好像有一个设计模式或其他一些带有泛型的解决方案可以帮助我摆脱这个问题,但我还没有把手指放在它上面.

建议?

c# design-patterns overloading downcast

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

如何从通用字典中获取值列表

我已经使用这个ObjectPool类作为我的身份地图的基础.但是,我需要恢复一个类型的所有对象的列表.马修有:

    public IEnumerable<T> GetItems<T>()
    {
        Type myType = typeof(T);

        if (!m_pool.ContainsKey(myType))
            return new T[0];

        return m_pool[myType].Values as IEnumerable<T>;
    }
Run Code Online (Sandbox Code Playgroud)

但是,当我像这样对客户端进行更改时:

        pool.AddItem<Animal>(dog.ID, dog);
        pool.AddItem<Vegetable>(carrot.Identifier, carrot);
        pool.AddItem<Vegetable>(greenbean.Identifier, greenbean);
        pool.AddItem<Mineral>(carbon.UniqueID, carbon);

        Console.WriteLine("Dog is in the pool -- this statement is " + pool.ContainsKey<Animal>(dog.ID));

        IEnumerable<Vegetable> veggies = pool.GetItems<Vegetable>();
        foreach(Vegetable veg in veggies)
            Console.WriteLine(string.Format("{0} - {1}", veg.Color, veg.IsTasty));
Run Code Online (Sandbox Code Playgroud)

蔬菜是空的.看来m_pool [myType] .Values不支持强制转换为IEnumerable.

我尝试过一些东西,例如:

        IDictionary<int, T> dic = (IDictionary<int, T>) m_pool[myType];
        ICollection<T> values = (ICollection<T>)dic.Values;
Run Code Online (Sandbox Code Playgroud)

但是,我总是最终会出现一个投射错误.

我错过了什么?

c# generics dictionary

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