C# 访问存在于两个不同程序集中的类时出错

C# 访问存在于两个不同程序集中的类时出错,c#,C#,我有一个项目,其中有两个不同的DLL的参考。 当我创建该类的对象时,它会在下面显示错误 严重性代码说明项目文件行抑制状态 错误CS0433类型“clsRMQNew”在这两个数据库中都存在 'XXXX.abc.System,版本=11.0.0.3,区域性=中性, PublicKeyToken=null'和'YYYY.Common.Queue, 版本=16.12.26.1,区域性=中性 请指导我如何从一个程序集访问该类。 有没有同样的解决方案?编译器会向您抱怨,因为您以这种方式在某个地方声明了一个变

我有一个项目,其中有两个不同的DLL的参考。 当我创建该类的对象时,它会在下面显示错误

严重性代码说明项目文件行抑制状态 错误CS0433类型“clsRMQNew”在这两个数据库中都存在 'XXXX.abc.System,版本=11.0.0.3,区域性=中性, PublicKeyToken=null'和'YYYY.Common.Queue, 版本=16.12.26.1,区域性=中性

请指导我如何从一个程序集访问该类。
有没有同样的解决方案?

编译器会向您抱怨,因为您以这种方式在某个地方声明了一个变量

clsRMQNew rmq = new clsRMQNew();
但是对于编译器来说,不可能知道应该使用哪个程序集来创建变量,因为有两个程序集具有相同的名称,而您没有给出使用哪个程序集的任何提示。
因此,它停止编译,并出现上述错误

添加类的整个限定名可以解决此问题

XXXX.abc.System.clsRMQNew rmq = new XXXX.abc.System.clsRMQNew();

取决于要使用的类

您还可以缩短这些声明,将其添加到using指令中

using QueueA = YYYY.Common.Queue;
然后

QueueA.clsRMQNew rmq = new QueueA.clsRMQNew();

您需要提供类的全名:

var one = new XXXX.abc.System.clsRMQNew();
var two = new YYYY.Common.Queue.clsRMQNew();

您需要在类(完全限定)的前面加上您打算用来避免冲突的特定名称空间

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; }
    }
}

你应该在你的变量前面加上你想要使用的类的全名。我已经尝试过使用名称空间i.eHi先生,我已经尝试过你在给定代码段中建议的方法,但是仍然得到了相同的错误。我需要删除一些文件吗??
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; }
    }
}