我现在写一个DLL,在DLL中需要从XML文件中读数据,所以打算把DLL和XML文件绑定在一起。
各位达人,可有方法在DLL中如何得到DLL自身所在的目录?

解决方案 »

  1.   

    webform中: System.Web.HttpContext.Current.Server.MapPath("")
      

  2.   

    Dll是应该可以在多种环境里的,比如WINForm,WebForm,或者其它环境中。
      

  3.   

    Assembly assembly;
    Type t;
    t = this.GetType();
    assembly= Assembly.GetAssembly(t);
    // Display the physical location of the assembly containing the manifest.
    Console.WriteLine("Location=" + assembly.Location);
      

  4.   

    呵呵,謝謝各位,
    問題基本上解決,但我想在加入引用的時候,把XML文件也加入到BIN目錄下,可以現實嗎?
    也就是希望把DLL和XML文件绑定在一起.
      

  5.   

    不要在bin目录放置dll以外的文件,尤其是会被更新的文件。
      

  6.   

    你直接把XML文件作为资源编译到DLL里面去就行了。
      

  7.   

    Ivony() ( )
    怎麽麽編譯?能說具體一點嗎??
      

  8.   

    把XML加入到你的项目里,然后在属性页设置生成操作为嵌入式资源。
    至于如何获得,我可以给个例子:        DataSet ds = new DataSet("Area");        System.IO.Stream stream = assembly.GetManifestResourceStream( typeof( Common ), "Area.xml" );
            ds.ReadXml( stream );
            _area = ds.Tables["Area"];我的XML文件叫做Area.xml,其实就是一个DataSet的序列化。
      

  9.   

    這樣的話就找不到XML文件了,如果我想修改XML文件的內容的話,有辦法嗎?
      

  10.   

    因為我的XML文件是一個配置資訊的文件,所以會經常修改,不可能沒修改都重新編譯一下程式啊...
      

  11.   

    如果是配置文件,你应该读取app.config。
      

  12.   

    我知道這是一種方法,但是我用的是分層的架構,這一層是業務層,因為用戶介面層不知道是WEBFORM還是WINFORM,所以沒有辦法知道是要讀WEB.CONFIG還是APP.CONFIG,因此我想另外用一個XML來配置.
      

  13.   

    配置文件是通用的,不管是app.config还是web.config,你可以用同一种方式来读取……
      

  14.   

    你要使用System.Configuration.Configuration类和系统的配置架构来读取。
      

  15.   

    我看了一下,WinForm和WinServers都沒有*.config文件啊??/
      

  16.   

    配置文件是继承的,即如果没有app.config文件,则从machine.config继承。
    你要多看看.NET的配置文件体系。app.config不常见,但web.config倒是很常见的。