Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果两个库具有完全相同的类,该怎么办?_C# - Fatal编程技术网

C# 如果两个库具有完全相同的类,该怎么办?

C# 如果两个库具有完全相同的类,该怎么办?,c#,C#,我犯了这样的错误 错误8“System.Threading.Volatile”类型在这两个文件中都存在 'c:\Oleg\projects\MBClient\packages\Disruptor.1.1.0\lib\net40\Atomic.dll' 和'c:\ProgramFiles(x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\mscorlib.dll'C:\Oleg\projects\MBClient\MBC

我犯了这样的错误

错误8“System.Threading.Volatile”类型在这两个文件中都存在 'c:\Oleg\projects\MBClient\packages\Disruptor.1.1.0\lib\net40\Atomic.dll' 和'c:\ProgramFiles(x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\mscorlib.dll'C:\Oleg\projects\MBClient\MBClient\CustomIndeces\CompositeIndex.cs 77 40 MBClient


我不知道该怎么办,因为完全限定名不能准确地标识要使用的类。如何解决此问题?

您可以在使用库时使用别名

也许您可以为该名称空间定义一个类,例如
Timer
类可以在以下名称空间中找到

using WinTimer = System.Windows.Forms;
using ThreadTimer = System.Threading;
然后你可以像这样使用它

WinTimer.Timer _tmr = new WinTimer.Timer();
ThreadTimer.Timer _Thrtmr = new ThreadTimer.Timer();

通过在引用列表中的程序集上单击鼠标右键,转到“属性”,并将“alias”属性设置为所需的任何属性,可以在VS中为库指定别名。然后,要使用此程序集中的类型,请在名称空间的开头使用
extern alias

例如:

namespace TestApp
{
    extern alias Threading1;
    using Threading1.System.Threading.Volatile;
}

我不明白我该怎么办。两个库都有
System.Threading.Volatile
类。这并不能解决两个或多个程序集之间的名称冲突问题。请参阅我的答案。该链接中的信息假设类位于两个不同的名称空间中,但这里的情况并非如此。抱歉,我认为该链接涵盖了extern别名声明。