C# 为什么我会得到;xxx类型是在未引用的程序集中定义的;?
我有以下C#项目结构: Main.dllC# 为什么我会得到;xxx类型是在未引用的程序集中定义的;?,c#,mongodb,reference,C#,Mongodb,Reference,我有以下C#项目结构: Main.dll 对->Util.dll的引用 class One { void function1() { Two.Function2("foo", "bar"); } } Util.dll 参考->MongoDB.Driver.dll class Two { public static void function2(string para1, string para2) { function2(null, pa
对->Util.dll的引用
class One {
void function1() {
Two.Function2("foo", "bar");
}
}
Util.dll参考->MongoDB.Driver.dll
class Two {
public static void function2(string para1, string para2) {
function2(null, para1, para2)
}
protected static void function2(IMongoQuery query, string para1, string para2) {
// do a MongoDB query
}
}
如果我尝试构建Main.dll,我会得到:类型“MongoDB.Driver.imongquery”是在以下程序集中定义的 未引用。必须添加对程序集的引用 'MongoDB.Driver,版本=1.8.3.9,区域性=中性, PublicKeyToken=f686731cfb9cc103'
添加引用可以解决这个问题,但我不明白为什么主项目需要知道这个参数类型?我做错什么了吗?我不知道这是否与MongoDB相关,我只想从上面的层隐藏MongoDB。这是因为您使用的类接受的参数不在由
Main.dll引用的程序集中。编译器不会尝试解析依赖项的依赖项。这是因为您使用的类接受的参数不在Main.dll
引用的程序集中。编译器不会尝试解析依赖项的依赖项。这是因为您使用的类接受的参数不在Main.dll
引用的程序集中。编译器不会尝试解析依赖项的依赖项。这是因为您使用的类接受的参数不在Main.dll
引用的程序集中。编译器不会尝试解析依赖项的依赖项。您的公共接口中有一个对MongoDB的引用(是的,在本例中受保护被视为公共,因为您的其他程序集可以通过派生类“查看”它),因此您需要包含它
找到一个不向程序集外部的类公开类型的解决方案。例如,internal
关键字。您的public接口中有一个对MongoDB的引用(是的,在这种情况下,受保护被视为public,因为您的其他程序集可以通过派生类“查看”它),所以您需要包含它
找到一个不向程序集外部的类公开类型的解决方案。例如,internal
关键字。您的public接口中有一个对MongoDB的引用(是的,在这种情况下,受保护被视为public,因为您的其他程序集可以通过派生类“查看”它),所以您需要包含它
找到一个不向程序集外部的类公开类型的解决方案。例如,internal
关键字。您的public接口中有一个对MongoDB的引用(是的,在这种情况下,受保护被视为public,因为您的其他程序集可以通过派生类“查看”它),所以您需要包含它
找到一个不向程序集外部的类公开类型的解决方案。例如,internal
关键字。您的Two.function2
方法受保护
,并使用IMongoQuery
参数。此方法可能对从Two
派生的任何类可见,因此Main.dll需要对MongoDB程序集的引用。您的Two。function2
方法受保护
,并使用IMongoQuery
参数。此方法可能对从Two
派生的任何类可见,因此Main.dll需要对MongoDB程序集的引用。您的Two。function2
方法受保护
,并使用IMongoQuery
参数。此方法可能对从Two
派生的任何类可见,因此Main.dll需要对MongoDB程序集的引用。您的Two。function2
方法受保护
,并使用IMongoQuery
参数。此方法可能对从Two
派生的任何类都可见,因此Main.dll需要对MongoDB程序集的引用。这就解释了它,但我不能使用“internal”,因为我需要在第三个程序集中从此类派生。所以我需要接受这个…这就解释了,但我不能使用“internal”,因为我需要在第三个程序集中从这个类派生。所以我需要接受这个…这就解释了,但我不能使用“internal”,因为我需要在第三个程序集中从这个类派生。所以我需要接受这个…这就解释了,但我不能使用“internal”,因为我需要在第三个程序集中从这个类派生。所以我需要接受这个。。。