今天在 Bdn 中看到一篇文章
http://bdn.borland.com/article/0,1410,32765,00.html
重要的部分摘抄如下
Ringkasan Eksekutif
• Namespaces tidak mempengaruhi Delphi untuk Win32.
• Namespaces diproduksi berdasarkan nama unit sebagai berikut:
• Jika nama unit dihiasi maka nama unit hingga titik terakhir digunakan.
• Jika tidak dihiasi maka namespace default digunakan.
• Jika tidak ada namespace default maka nama unit digunakan.
• Kode yang dikonversi dari Delphi 8 mungkin memerlukan beberapa modifikasi.
• Selalu gunakan paket bukan pustaka untuk membuat rakitan yang dapat dibagikan.
• Delphi akan selalu merujuk pada jenis dengan nama unit lengkapnya.
• Bahasa lain perlu merujuk pada tipe menggunakan namespace mereka.
• Deklarasi ASP.NET, file konfigurasi, dan refleksi .NET selalu merujuk pada jenis dengan namespace mereka.
• Jika beberapa unit memancarkan jenis publik dengan nama yang sama ke namespace yang sama, rakitan mungkin tidak dapat digunakan
Borland selalu merekomendasikan untuk tidak menggunakan proyek perpustakaan untuk membuat majelis. Di Delphi 2005, kompiler lebih ketat dan tidak akan lagi memungkinkan Anda untuk menyusun aplikasi yang merujuk pada 'Perpustakaan' Delphi.
Selalu gunakan proyek paket untuk membuat rakitan .NET.
Namun, seperti halnya apa pun, ada pengecualian pada aturan dan ada beberapa situasi di mana Anda perlu menggunakan namespace meskipun Anda mengkode di Delphi.
Salah satu contohnya adalah saat Anda menggunakan tag dalam file ASPX, ASCX atau ASMX. Jika Anda membuat halaman web yang disebut twebForm di file application.pages.webform1.pas maka tag halaman akan:
<%@Page language = "c#" codebeHind = "webForm1.pas" mewariskan = "application.pages.tWebForm1"%> |
Lainnya adalah ketika meneruskan informasi jenis ke .net dalam bentuk string, terutama saat menggunakan API berbasis refleksi dan file konfigurasi:
Var C: TypeConverter; C: = Assembly.CreateInstance ('sample.controls.tconverter'); |
Perbedaan kecil ini biasanya tersandung orang dan merupakan sesuatu yang Anda butuhkan untuk berhati -hati, terutama ketika porting kode dari Delphi 8 atau mengonversi kode dari bahasa lain.
这就解释了我原来的疑问 , 在 D2005 中 , 新建一个 .net Dll , 编译 , 在别的编译器中 (C#) , 可以使用 , 但是在 delphi 中自己却不能用 , , , ,但是包中添加资源很不方便 , 真是不知道 Borland 是怎么想的。