现在有2个DLL,A.DLL和b.DLL。
A.DLL的命名空间是Client.A;B.DLL的命名空间是Clirnt.B。
B.DLL中有个枚举类型:public enum CC{成员}A.DLL会引用B.DLL,使用B.DLL的类和数据,关键的是会使用枚举CC。
A.DLL的某个公开类ClassA的公开方法FunctionA使用CC作参数,即:
namespace Client.A
{
    public class ClassA
    {
        public int FunctionA(CC argu){}
    }
}问题是:
我需要让使用A.DLL的人不需要导入B.DLL也可以使用ClassA.FunctionA。
当然,项目不允许再增加一个DLL,把枚举CC放进去,只能在这两个命名空间和DLL里操作。
我是个新手,使用C#的时间不足一个月,请大侠们不吝赐教。C#命名空间enum共享

解决方案 »

  1.   


    那你就再搞一个C.DLL吧。早知今日,何必当初?
      

  2.   

    呢么反问以下,如何只引用A.DLL的情况下,让A知道CC是个什么东西呢??
      

  3.   

    A.DLL会引用B.DLL,A.DLL自然知道CC是什么。问题想把B.DLL隐藏,app只能引用A.DLL,而A.DLL中没有CC的定义,app就不知道CC是什么了。
    CC是一个枚举类型,不是calss,也不是struct。
    我的想法是如果修要修改CC,只需要在一处修改就好了,不要再多处修改,容易改错或者改漏了。如果CC是个class话,我想应该可以通过在A.DLL里增加一个CC派生类,而把派生类作为参数来实现,但是CC只是一个枚举类型,似乎没法继承。
      

  4.   

    在A.dll里再实现一遍CC呗,叫代理类也好、叫影子类型也好,反正就是把b里边的CC只保留属性复制过来,只用来传递参数