如何在c#中解决重复的namspaces

Dav*_*vid 1 .net c# namespaces

我有2个组件Combreslog4net

两个程序集都包含相同的log4net.Appender命名空间(包括内部代码) - 我需要继承log4net.Appender.AdoNetAppender.

我该如何做到这一点.

Mic*_*ray 7

您可以为其中一个命名空间指定别名,如下所示:

using MyNameSpace = log4net.Appender;
Run Code Online (Sandbox Code Playgroud)

然后继承MyNameSpace.AdoNetAppender


Jus*_*tin 6

完全符合类型.例如,如果您尝试从此类继承:

class MyAppender : log4net.Appender.AdoNetAppender
Run Code Online (Sandbox Code Playgroud)

如果您尝试使用/创建此类的实例:

var appender = log4net.Appender.AdoNetAppender;
Run Code Online (Sandbox Code Playgroud)

如果Combreslog4net两者都包含命名空间中的类型AdoNetAppender,log4net.Appender那么您就会遇到更多麻烦(并且有人犯了错误 - 命名空间旨在避免这些类型的冲突).

如果确实发生了这种情况,那么您可以使用程序集引用"Aliases"属性来解决冲突,如程序集引用的Aliases属性的用法所述.