小编You*_*ava的帖子

C#将集合作为接口集合传递

我在下面的代码中简化并重现了我的问题.我收到的错误是:参数1:无法从'System.Collections.ObjectModel.Collection'转换为'System.Collections.ObjectModel.Collection

导致这个问题的设计决策的一些背景:我已经创建了一个用于处理"IFruit"的Web服务,但由于我理解它们的SOAP和端点绑定的性质,我已经创建了具有IFruit的显式实现的方法.在业务层,为每个特定的水果实现创建一个单独的方法首先会导致大量重复的代码,其次紧密地结合业务和服务层,以便稍后在Web服务中接受新的IFruit类型也需要更改我的代码在业务层(添加冗余代码的另一个副本).这个设计是我过去使用Java成功实现的设计,但C#接口似乎只是与我不同.请指教.

public interface IFruit{
    public string TakeBite();
}

public Apple : IFruit{
    public string TakeBite(){
        return "tasty bite of apple";
    }
}

public void EatFruit(Collection<IFruit> fruits){
    foreach(var fruit in fruits){
        Console.WriteLine(fruit.TakeBite());
    }
}

public void EatApples(Collection<Apple> apples){
    this.EatFruit(apples);
}
Run Code Online (Sandbox Code Playgroud)

c# collections interface decoupling

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

现有 COM 引用出错或添加新的 COM 引用

首先让我说我不熟悉 COM 引用,并且我在 Windows 7 64 位机器上使用 VS2010。今天早上我从 TFS 中删除了一个现有项目。然后我尝试构建项目并收到此错误:

找不到类型或命名空间名称“validatecom”(您是否缺少 using 指令或程序集引用?)

我收到这个警告:

无法获取类型库“d0b51ccc-aa31-47a1-b3ff-b8ed71c522a1”版本 1.0 的文件路径。图书馆未注册。(来自 HRESULT 的异常:0x8002801D (TYPE_E_LIBNOTREGISTERED))

当我检查引用时,果然,我在解决方案中唯一的COM引用中看到了黄色感叹号。经过一些毫无结果的测试,我决定尝试添加一个新的 COM 引用。

添加参考 -> COM 选项卡 -> 随机 M$ 库

这会产生一个带有黄色感叹号的新引用。我尝试构建项目以查看是否出现相同的错误。这次我收到此错误:

遇到多个版本的 GUID 为“23d736f1-acbc-11d3-b0e8-00104bff2710”的程序集。尝试预导入这些程序集之一。

我收到这个警告:

找不到类型库“ADODB”的包装程序集。

我不知道这两个错误是否相关。如果没有,那么解决第一个肯定优先于最后一个。

c# assemblies reference visual-studio-2010

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