我只需要另一双眼睛......我没有看到以下任何问题。事实上,我发誓我不久前就有这样的东西,而且很有效。
在我的Collections.dll中:
namespace Collections
{
public class CSuperAutoPool
{
public static CSuperAutoPool ActivateByType(Type typeToBeActivated, params object[] activatedArguments)
{
//...
}
}
}
在另一个DLL中,我引用了集合DLL项目,并在此函数中使用它:
namespace Organization
{
public class CBaseEntity : CSuperAutoPool
{
protected static CBaseEntity Create()
{
//...
CBaseEntity created = (CBaseEntity)CSuperAutoPool.ActivateByType(callingType); //Error here.
//...
}
}
}
错误:'Collections.CSuperAutoPool'不包含'ActivateByType'的定义
我在CSuperAutoPool中使用了ActivateByType,使用了不同的函数,并且没有错误。 Collections DLL编译没有错误。在存在Organization命名空间的同一DLL中,以其他方式使用了CSuperAutoPool类的各种其他方面,没有编译器错误。
答案 0 :(得分:3)
您的示例中必定缺少某些内容,或者您没有使用您认为正在使用的代码版本,例如可能是你的项目中有另一个名为CSuperAutoPool
的类,可能在引用的程序集中?
以下代码段编译没有错误:
namespace Collections
{
public class CSuperAutoPool
{
public static CSuperAutoPool ActivateByType(
Type typeToBeActivated, params object[] activatedArguments)
{
//...
return null;
}
}
}
namespace Organization
{
using Collections;
public class CBaseEntity : CSuperAutoPool
{
protected static CBaseEntity Create()
{
Type callingType = null;
//...
CBaseEntity created =
(CBaseEntity)CSuperAutoPool.ActivateByType(callingType);
//...
return created;
}
}
}
答案 1 :(得分:0)
当我将Collections引用添加到Organization项目时,它没有勾选要在Configurations Manager中编译的Collections项目。换句话说,我的Collections DLL没有编译,除非我手工完成。
谢谢你,这就是我用额外的一双眼睛的意思。 : - )