主程序app,引用了动态链接库dllA和dllB,现在我想定义一个数据类型dt,不需要实例化的情况下,在这三者中都能引用这个数据类型,这个想法可以实现吗?应该在哪里定义?我尝试过无论在app中定义,还是在dllA中还是dllB中,都不行,都必须实例化才能引用。

解决方案 »

  1.   

    楼主是这个意思么?
    app -> dllA -> dt
    app -> dllB -> dt
    app -> dt那么很明显你把 dt 定义在一个独立的程序集(或者叫 dll)里面,然后让 app, dllA, dllB 都引用它就好了呀~
      

  2.   

    是的,定义一个dll,例如dllG,实例化这个dllG后,就可以了。不过我希望的是不需要实例化就能引用它,就像static那样的。但是就算是写成一个静态的类,该把这个类放在哪里呢?
      

  3.   

    不行,例如静态类放在app中,在dllA和dllB中无法引用;放在dllA中,在dllB中无法引用。
    c#不支持这种做法吗?
      

  4.   


    不是很明白什么叫做“实例化”动态联接库?你在项目 dllG 里定义一个数据结构,然后再定义一个静态类把数据结构的一个实例放进去,让其他三个项目都引用 dllG ,这样他们就都能访问你这个静态类中的结构实例了呀~
      

  5.   

    首先感谢你的耐心!
    我想把这个问题换个叙述方式:定义一个数据类型dt,我想在不同的命名空间中使用它,怎么做?
    是否只能是放到dllC中,哪个命名空间中需要引用,就在那个命名空间中引用dllC,就行了?这种方式显然可行,只有这种方式吗?