.net类库名称空间冲突怎么办?

常见案例是MySql.Data和MySqlConnector。

比如一般的orm for mysql用的是mysql.data,而Pomelo.EFCore.MySql用的是MySqlConnector。当同时引用这两个类库的时候,如果需要new MySqlConnection()可能就会发生冲突了。

此时可以使用alias关键词。

1,给其中一个依赖包起别名

    <PackageReference Include="MySqlConnector" Version="0.69.8">
      <Aliases>A</Aliases>
    </PackageReference>

2,在使用到有冲突类型的.cs文件首行引入别名

extern alias A;

3,使用带别名的全名称来使用类型

var conn = new A::MySql.Data.MySqlClient.MySqlConnection(connectionString);

 

posted @ 2021-08-10 08:41  陈惊蛰  阅读(143)  评论(0编辑  收藏  举报