我有一个项目,其中包含两个不同的dll。 当我创建该类的对象时,它会显示错误
严重级代码描述项目文件行抑制状态 错误CS0433类型' clsRMQNew'存在于两者中 ' XXXX.abc.System,Version = 11.0.0.3,Culture = neutral, 公钥=空'和' YYYY.Common.Queue, 版本= 16.12.26.1,文化=中立,
请指导我如何从一个程序集中访问该类。 有没有相同的解决方案?
答案 0 :(得分:1)
编译器抱怨你,因为你已经以这种方式声明某个变量
clsRMQNew rmq = new clsRMQNew();
但是编译器不可能知道应该使用哪个程序集来创建变量,因为有两个具有相同名称的程序集,并且您没有提供任何关于要使用哪个程序集的提示。
因此,它会使用提到的错误
您可以修复此问题,添加类的整个限定名称
XXXX.abc.System.clsRMQNew rmq = new XXXX.abc.System.clsRMQNew();
或
YYYY.Common.Queue.clsRMQNew rmq = new YYYY.Common.Queue.clsRMQNew();
取决于您要使用的课程。
您还可以缩短这些声明,将其添加到您的using指令
using QueueA = YYYY.Common.Queue;
然后
QueueA.clsRMQNew rmq = new QueueA.clsRMQNew();
答案 1 :(得分:1)
您需要在类(完全限定)前添加您打算使用的特定命名空间以避免冲突。
using NameSpaceOne;
using NameSpaceTwo;
namespace StackOverflow
{
class Program
{
static void Main(string[] args)
{
var dupObjectOne = new NameSpaceOne.DuplicateClass() { value = 1};
var dupObjectTwo = new NameSpaceOne.DuplicateClass() { value = 2 };
}
}
}
namespace NameSpaceOne
{
class DuplicateClass
{
public int value { get; set; }
}
}
namespace NameSpaceTwo
{
class DuplicateClass
{
public int value { get; set; }
}
}
答案 2 :(得分:0)
您需要提供班级的全名:
var one = new XXXX.abc.System.clsRMQNew();
var two = new YYYY.Common.Queue.clsRMQNew();