none
项目共享类文件的冲突问题 RRS feed

  • 问题

  • 写了一个用于结算的类在一个CS文件里,然后放入一个文件夹供各项目共享使用。为了便于更改,各个项目都采用“添加现有项”--->“添加链接”的方式把这个文件引用进来使用,但是在项目A和B都有使用时,出现A调用B就会出现

    XXXX.cs中的类型“yyyy”与“\B.dll”中的导入类型“yyyyy”冲突。请使用“xxx.cs”中定义的类型

    的警告,会有危险吗?

    2010年12月23日 8:25

答案

  • 您好

    您可以透過取別名的方式區別,參考

    using 指令(C# 参考)

    9.3.1 using 别名指令


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 scate233 2010年12月28日 6:07
    2010年12月23日 8:32
  • 你好!

        一般来说,不这样做,你应该把那个类文件编译成dll,在不同的项目中引用,这是常规的做法。

        出现这个问题的原因是,在.NET中,如果存在两个名字相同的类,编译器会认为这是两个不同的类,存在命名冲突。很可能程序不会按你预想的那样执行。正确的做法如上,基本原则是共享程序集,而不是文件。


    周雪峰
    • 已标记为答案 scate233 2010年12月28日 6:07
    2010年12月23日 13:03
    版主
  • dear
    你应该将结算的类建立类别库的专案,然后让其他的专案引用,你会出错可能是名字重复,或者可能是你的写法有错,你可在更详细的描述你的架构
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    • 已标记为答案 scate233 2010年12月28日 6:07
    2010年12月24日 0:37
  • Hi scate233,

    你是在同一个解决方案里面有好几项目存在,然后在此解决方案中两个以上的项目中分别都以你所描述的方式添加了对此类文件的引用,对不对?
    如果是这样的话,建议你将此类文件放在其中一个项目中,然后在要用到这个类的其他项目中添加对这个项目的引用,这样就可以避免此问题的出现。
    就我所知道的,ASP.NET Web开发里面的三层架构就是在同一解决方案中添加了实现不同逻辑的项目,然后项目之间添加引用来实现对存在于某一项目中的唯一类库的使用的。

    Sincerely,
    Leo Liu


    Leo Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 scate233 2010年12月28日 6:07
    2010年12月28日 3:47
    版主

全部回复

  • 您好

    您可以透過取別名的方式區別,參考

    using 指令(C# 参考)

    9.3.1 using 别名指令


    歡迎參觀我的Blog.NET菜鳥自救會
    • 已标记为答案 scate233 2010年12月28日 6:07
    2010年12月23日 8:32
  • 你好!

        一般来说,不这样做,你应该把那个类文件编译成dll,在不同的项目中引用,这是常规的做法。

        出现这个问题的原因是,在.NET中,如果存在两个名字相同的类,编译器会认为这是两个不同的类,存在命名冲突。很可能程序不会按你预想的那样执行。正确的做法如上,基本原则是共享程序集,而不是文件。


    周雪峰
    • 已标记为答案 scate233 2010年12月28日 6:07
    2010年12月23日 13:03
    版主
  • dear
    你应该将结算的类建立类别库的专案,然后让其他的专案引用,你会出错可能是名字重复,或者可能是你的写法有错,你可在更详细的描述你的架构
    秘訣無它,唯勤而已 http://www.dotblogs.com.tw/yc421206/
    • 已标记为答案 scate233 2010年12月28日 6:07
    2010年12月24日 0:37
  • Hi scate233,

    你是在同一个解决方案里面有好几项目存在,然后在此解决方案中两个以上的项目中分别都以你所描述的方式添加了对此类文件的引用,对不对?
    如果是这样的话,建议你将此类文件放在其中一个项目中,然后在要用到这个类的其他项目中添加对这个项目的引用,这样就可以避免此问题的出现。
    就我所知道的,ASP.NET Web开发里面的三层架构就是在同一解决方案中添加了实现不同逻辑的项目,然后项目之间添加引用来实现对存在于某一项目中的唯一类库的使用的。

    Sincerely,
    Leo Liu


    Leo Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    • 已标记为答案 scate233 2010年12月28日 6:07
    2010年12月28日 3:47
    版主