原文:C# 使用外部别名

版权声明:博客已迁移到 http://lindexi.gitee.io 欢迎访问。如果当前博客图片看不到,请到 http://lindexi.gitee.io 访问博客。本文地址 https://blog.csdn.net/lindexi_gd/article/details/82912694

本文告诉大家如果遇到两个不同的库有相同的命名空间,相同的类如何使用这两个库

 

在看过 C# 很少人知道的科技的小伙伴就知道,我告诉了大家一些关键字,都是很少人发现。

在上一篇文章说到 extern 关键字,只是很简单告诉大家用来做区分两个不同 dll 有相同的命名空间和类,可以使用这个关键字。

在遇到了存在两个 dll 都有相同的命名空间,而且有相同的类的时候,如何同时使用这两个 dll 的类。

这里有两个库 JallzuZowsobouNaboro 和 BemzarGasfourouraCunimor 这两个库有相同的类 Foo 只是里面的函数不相同。那么如何才可以使用自己需要的 dll 的函数


  1. //BemzarGasfourouraCunimor 库
  2. namespace lindexi
  3. {
  4. public class Foo
  5. {
  6. public void MestatoRoureefirkiKoobere()
  7. {
  8. Console.WriteLine("欢迎访问我博客");
  9. }
  10. }
  11. }
  1. // JallzuZowsobouNaboro 库
  2. namespace lindexi
  3. {
  4. public class Foo
  5. {
  6. public void TarlaGeremegar()
  7. {
  8. Console.WriteLine("lindexi.github.io");
  9. }
  10. }
  11. }

这时创建 PearveJalnouChearkachinearDocea 项目引用 BemzarGasfourouraCunimor 和 JallzuZowsobouNaboro 需要调用这两个库的方法

就需要使用 extern 来做

首先右击引用的两个库的属性,可以看到引用的库的别名是 global 这也就是使用 global:: 可以指定对应的类的原因

现在需要修改别名为新的,而且不同的字符,这里我把 JallzuZowsobouNaboro 修改为 A ,把 BemzarGasfourouraCunimor 修改为 B ,现在打开 PearveJalnouChearkachinearDocea 的源代码,在调用 JallzuZowsobouNaboro 的库可以使用extern alias A来引用

  1. extern alias A;
  2. extern alias B;
  3. namespace PearveJalnouChearkachinearDocea
  4. {
  5. class Program
  6. {
  7. static void Main(string[] args)
  8. {
  9. new B::lindexi.Foo().MestatoRoureefirkiKoobere();
  10. new A::lindexi.Foo().TarlaGeremegar();
  11. }
  12. }
  13. }

现在运行可以输出

使用 外部别名 的关键是右击引用的属性,修改别名,把他修改为一个新的字符。

在使用的时候在所有的代码的最前,也就是 using的前面使用 extern alias 别名;

然后使用对应的类就可以使用 别名::命名空间.类 ,当然可以使用 using 简化,在安装了 Resharper 就会告诉你如何使用using,这里我就不告诉大家。

在网上也有告诉大家如何使用命令行的方法设置别名

  1. /r:别名1=A.dll
  2. /r:别名2=B.dll

请看 外部别名(C# 参考)

我搭建了自己的博客 https://lindexi.gitee.io/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新

如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

C# 使用外部别名的更多相关文章

  1. 2018-9-30-C#-使用外部别名

    title author date CreateTime categories C# 使用外部别名 lindexi 2018-09-30 18:37:23 +0800 2018-07-02 14:31 ...

  2. C#通过外部别名,解决DLL冲突问题

    今天遇到一个有两个DLL文件,命名空间,部分类名与部分方法名一样,但是方法的功能实现不一样.调用方法时,无法调用指定DLL的指定方法.在网上找了好多,简单总结一下. 1.首先添加引用,不细说. 2.右 ...

  3. virtualbox+vagrant学习-2(command cli)-24-Aliases别名

    Aliases 别名的部分灵感来自Git自身的别名功能,它允许你创建自己的定制vagrant命令,从而使你的vagrant体验更简单.更容易.更熟悉. 别名可以在VAGRANT_HOME/ alias ...

  4. C#中命名空间别名的使用

    C#中使用命名空间来分割不同的层级,在不同的层级中可以使用相同的类声明和变量声明.在程序中使用不同命名空间的下的相同名称的类时:可以用一下这几种方法进行限定: 1.使用完全限定名 using Syst ...

  5. C# 关键字【转】

      C#中的关键字 关键字是对编译器具有特殊意义的预定义保留标识符.它们不能在程序中用作标识符,除非它们有一个 @ 前缀.例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字. 下面是列 ...

  6. CLR via C#学习笔记----知识总概括

    第1章 CLR的执行模型 托管模块的各个组成部分:PE32或PE32+头,CLR头,元数据,IL(中间语言)代码. 高级语言通常只公开了CLR的所有功能的一个子集.然而,IL汇编语言允许开发人员访问C ...

  7. 【转】【C#】C# 不常用关键字

    1.__arglist 让我们先从__arglist开始. __arglist是用来给方法传送参数.通常我们是通过函数头部指定的参数列表给方法传递参数的.如果我们想要给方法传递一组新的参数,我们需要重 ...

  8. 【CLR VIA C#】读书笔记

    工作几年了才看,记录下笔记备忘. 章节 笔记 1.CLR的执行模型 公共语言运行时(Common Language Runtime,CLR) 源代码-->编译器检查语法和分析源代码-->托 ...

  9. C# 语言规范_版本5.0 (第9章 命名空间)

    1. 命名空间 C# 程序是利用命名空间组织起来的.命名空间既用作程序的“内部”组织系统,也用作“外部”组织系统(一种向其他程序公开自己拥有的程序元素的方法). using 指令(第 9.4 节)用来 ...

随机推荐

  1. [D3] Build a Column Chart with D3 v4

    Column and bar charts are staples of every visualization library. They also make a great project for ...

  2. 获取iOS顶部状态栏和Navigation的高度

    状态栏的高度 20 [[UIApplication sharedApplication] statusBarFrame].size.height Navigation的高度 44 self.navig ...

  3. 以Spring整合EhCache为例从根本上了解Spring缓存这件事(转)

    前两节"Spring缓存抽象"和"基于注解驱动的缓存"是为了更加清晰的了解Spring缓存机制,整合任何一个缓存实现或者叫缓存供应商都应该了解并清楚前两节,如果 ...

  4. Launcher Activity在开机时重新启动两次解决的方法

    今天在看log的时候发现,Launcher activity会被onDestroy掉一次.然后再重新启动. 可能原因推測: 1.横竖屏切换 2.MCC MNC等Configuration改变引起的 M ...

  5. [TypeStyle] Add responsive styles using TypeStyle Media Queries

    Media queries are very important for designs that you want to work on both mobile and desktop browse ...

  6. Html表单使用实例

    原文 https://www.jianshu.com/p/b01f32844ac1 大纲 1.单选框多选框实现的商品选择 2.添加下拉框和删除下拉框 3.观察textarea中事件处理器的运行顺序 推 ...

  7. 【TP SRM 703 div2 250】AlternatingString

    Problem Statement A string of zeros and ones is called an alternating string if no two adjacent char ...

  8. js进阶正则表达式11RegExp的属性和方法(RegExp的属性和方法,就是RegExp对象.(点)什么的形式)(正则表达式执行之前会被编译)

    js进阶正则表达式11RegExp的属性和方法(RegExp的属性和方法,就是RegExp对象.(点)什么的形式)(正则表达式执行之前会被编译) 一.总结 1. RegExp的属性和方法,就是RegE ...

  9. Js数组排序函数:sort()

    原文链接:https://blog.csdn.net/qq_37936542/article/details/78979521 js原生的 sort() 排序函数使用起来很方便 语法:arrayObj ...

  10. ArcSDE中Compress与Compact的区别

    原文 ArcSDE中Compress与Compact的区别 附件一”为两种数据库需要的管理工作.      与所表示的含义与操作是不同的.     对于来说,Compressing与Smart Dat ...