C# 如何在c中解析重复的NAMC空间#
我有两个程序集C# 如何在c中解析重复的NAMC空间#,c#,.net,namespaces,C#,.net,Namespaces,我有两个程序集Combres和log4net 两个程序集都包含相同的log4net.Appender命名空间(包括内部代码)-我需要继承log4net.Appender.AdoNetAppender 如何完成此操作。您可能可以为其中一个名称空间指定别名,如下所示: using MyNameSpace = log4net.Appender; 然后继承MyNameSpace.AdoNetAppender您可能可以为其中一个名称空间指定别名,如下所示: using MyNameSpace = log
Combres
和log4net
两个程序集都包含相同的log4net.Appender
命名空间(包括内部代码)-我需要继承log4net.Appender.AdoNetAppender
如何完成此操作。您可能可以为其中一个名称空间指定别名,如下所示:
using MyNameSpace = log4net.Appender;
然后继承MyNameSpace.AdoNetAppender您可能可以为其中一个名称空间指定别名,如下所示:
using MyNameSpace = log4net.Appender;
然后继承MyNameSpace.AdoNetAppender完全限定该类型。例如,如果您试图从此类继承:
class MyAppender : log4net.Appender.AdoNetAppender
var appender = log4net.Appender.AdoNetAppender;
如果您试图使用/创建此类的实例:
class MyAppender : log4net.Appender.AdoNetAppender
var appender = log4net.Appender.AdoNetAppender;
如果Combres
和log4net
在log4net.Appender
名称空间中都包含类型AdoNetAppender
,则您会遇到更大的麻烦(而且有人犯了错误-名称空间的设计是为了避免此类冲突)
如果发生这种情况,则可以使用程序集引用“别名”属性来解决冲突,如中所述。完全限定类型。例如,如果您试图从此类继承:
class MyAppender : log4net.Appender.AdoNetAppender
var appender = log4net.Appender.AdoNetAppender;
如果您试图使用/创建此类的实例:
class MyAppender : log4net.Appender.AdoNetAppender
var appender = log4net.Appender.AdoNetAppender;
如果Combres
和log4net
在log4net.Appender
名称空间中都包含类型AdoNetAppender
,则您会遇到更大的麻烦(而且有人犯了错误-名称空间的设计是为了避免此类冲突)
如果确实发生这种情况,则可以使用程序集引用“别名”属性来解决冲突,如中所述。请查看有关的文档。它允许您在代码中显式引用类,即使它们位于同一命名空间中并且具有相同的名称 例如,您可以这样引用log4net类:
extern alias l4n;
//... further down
l4n::log4net.Appender.AdoNetAppender l4nAppender = null;
“l4n”别名还必须添加到Visual Studio中DLL引用的属性页。请查看有关的文档。它允许您在代码中显式引用类,即使它们位于同一命名空间中并且具有相同的名称 例如,您可以这样引用log4net类:
extern alias l4n;
//... further down
l4n::log4net.Appender.AdoNetAppender l4nAppender = null;
“l4n”别名还必须添加到Visual Studio中DLL引用的属性页中。我很确定Combres本身没有使用
log4net.Appender
命名空间,而是使用Combres.Loggers
命名空间
但是Combres
(2.2.1)包含对log4net
的引用。如果您的应用程序还包含对log4net
的引用(甚至可能位于Combres引用的log4net程序集之外的其他位置),则可能会导致您描述的错误
(引用了多个log4net程序集,当然它们都包含
log4net.Appender
)我很确定Combres本身并没有使用log4net.Appender
名称空间,而是使用Combres.Loggers
名称空间
但是Combres
(2.2.1)包含对log4net
的引用。如果您的应用程序还包含对log4net
的引用(甚至可能位于Combres引用的log4net程序集之外的其他位置),则可能会导致您描述的错误
(引用了多个log4net程序集,当然它们都包含
log4net.Appender
)使用log4net.Appender.AdoNetAppender
没有为您找到合适的吗?@Marco:AdoNetAppender
是一个类。您通过继承log4net.Appender.AdoNetAppender来回答您的问题。不,它不知道使用哪一个,因为名称空间是重复的。我非常确定Combres没有使用log4net.Appender
名称空间,而是Combres.Loggers
名称空间。。。。可能错误的根本原因是使用log4net.Appender.AdoNetAppender的其他地方
没有为您找到合适的吗?@Marco:AdoNetAppender
是一个类。您通过继承log4net.Appender.AdoNetAppender来回答您的问题。不,它不知道使用哪一个,因为名称空间是重复的。我非常确定Combres没有使用log4net.Appender
名称空间,而是Combres.Loggers
名称空间。。。。可能错误的根本原因是其他一些答案完全是HG(更高等级)或一些答案完全是HG(更高等级)