VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2135|回复: 10

命名空间的名称冲突,如何解决?

[复制链接]

2

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-2 22:20:01 | 显示全部楼层 |阅读模式
有三个工程,A,B,C。A是一个桌面应用程序,B,C是2个类库
引用关系如下:
B工程引用了C,A工程引用的B,C。结果在编译时报告了C中的命名空间名有重名,冲突。如何解决这类问题?

回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-2 22:54:01 | 显示全部楼层
关注,
帮顶!
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-1-2 23:12:01 | 显示全部楼层
既然在B中引用了C,在A中就直接引用B不就行了..
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-2 23:24:01 | 显示全部楼层
是否在B和C中有两个类的完全限定名一样?比如在B.Dll和C.Dll中都有这样的定义:

namespace MyNamespace
{
  class MyClass {}
}

如果是的话应该做适当的修改。
回复

使用道具 举报

2

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-3 11:51:02 | 显示全部楼层
我说的实际上是一个类的依赖问题。C是一个类库,只要需要该类库功能的工程都可以引用,所以工程A,B引用了。B是一个类库,只要需要该类库功能的工程都可以引用,所A引用。
我目前的方法就是修改名称,但是这样的话重用起来很麻烦啊。

To kalian2000(SnowLover):
A引用b是需要b的功能,引用c是需要c的功能,这个不等于b在功能上完全包含c,并再次作一个封装。

各位有没有好的建议???
回复

使用道具 举报

0

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-3 12:27:01 | 显示全部楼层
可以用别名吧~
回复

使用道具 举报

0

主题

110

帖子

63.00

积分

新手上路

Rank: 1

积分
63.00
发表于 2020-1-3 14:00:01 | 显示全部楼层
不好意思,我可能把楼主的意思理解错了..

能把大体的调用关系,相关代码贴一下吗?
回复

使用道具 举报

0

主题

8

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-1-3 14:54:01 | 显示全部楼层
A引用b是需要b的功能,引用c是需要c的功能,这个不等于b在功能上完全包含c,并再次作一个封装。


完全不懂你的意思。

如果B引用了C,就表示B已经包含了所有C的功能。就好比你的.NET应用程序需要运行就需要完整的.NET Framework,尽管它提供的功能与你的应用程序无关,要么你就分拆C好了……不要引用两次……
回复

使用道具 举报

2

主题

5

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
 楼主| 发表于 2020-1-6 19:57:01 | 显示全部楼层
给一个简单的例子:
C中有一个数据库类CDatabase(假设是这个名字),这个类完成数据库的基本操作,比如:连接,断开,执行SQL语句。

B是另一个类库,封装了对特定的某一方面业务的处理,其中需要读写数据库的数据,所以在工程中引入了类库C,这样B就可以使用C中的类。

A是一个应用程序,负责管理整个信息系统,其中当然包含管理B包含的那部分内容,所以工程中引入了B,这样就可以使用B中的类。但是A在某些时候需要直接访问数据库,所以引用了C,希望使用C中的类访问数据库。

所谓引用就是将一个dll文件包含到工程中来。实际使用中发现,这样做的话就会空间命名冲突
请各位发表高见。
回复

使用道具 举报

1

主题

6

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-1-6 20:48:01 | 显示全部楼层
帮顶!
SF
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表