C#中不同程序集(dll)存在相同的命名空间

一、遇到问题
  1.类型“IDatabase”同时存在于“StackExchange.Redis.StrongName, Version=1.2.6.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46”和“StackExchange.Redis, Version=2.0.0.0, Culture=neutral, PublicKeyToken=c219ff1ca8c2ce46”中
  2.StackExchange.Redis.StrongName和StackExchange.Redis两个程序集中都有StackExchange.Redis命名空间,这时使用 命名空间.类名 不能解决冲突问题

二、解决方案

  1.将相同命名空间的不同程序集分别进行取别名
  2.我这里有两个程序集,则只给其中一个程序集定义别名,根据需要我选中StackExchange.Redis.StrongName设置别名,
          右键属性,设置一个别名:StackExchangeRedisStrongName,别名根据自己需要进行自定义
  3.通过"extern alias"关键字导入别名 ,在类文件首部加上 :extern alias 别名;

extern alias StackExchangeRedisStrongName;

  4.(1)通过别名.命名空间.类名 使用相关的类:

StackExchangeRedisStrongName.StackExchange.Redis.IDatabase

     (2)或者使用

using StackExchangeRedisStrongName.StackExchange.Redis;

  

posted @ 2021-03-26 11:12  DreamGiant  阅读(1782)  评论(1编辑  收藏  举报