今天在 Bdn 中看到一篇文章
http://bdn.borland.com/article/0,1410,32765,00.html
重要的部分摘抄如下
Sumário executivo
• Namespaces não afetam o Delphi para o Win32.
• Namespaces são produzidos com base no nome da unidade da seguinte forma:
• Se um nome de unidade for pontilhado, o nome da unidade até o último ponto será usado.
• Se não estiver pontilhado, o espaço para nome padrão será usado.
• Se não houver espaço para nome padrão, o nome da unidade será usado.
• O código convertido do Delphi 8 pode exigir algumas modificações.
• Sempre use pacotes não bibliotecas para criar assemblies compartilháveis.
• Delphi sempre se referirá aos tipos pelo nome completo da unidade.
• Outros idiomas precisarão consultar os tipos usando seu espaço para nome.
• Declarações ASP.NET, arquivos de configuração e reflexão .NET sempre se referem aos tipos por seu espaço para nome.
• Se várias unidades emitem um tipo público com o mesmo nome no mesmo espaço de nome, a assembléia pode ser inutilizável
Borland sempre recomendou não usar projetos de biblioteca para criar assembléias. Em Delphi 2005, o compilador é mais rigoroso e não permitirá mais que você compile um aplicativo referenciando uma 'biblioteca' Delphi.
Sempre use um projeto de pacote para criar conjuntos .NET.
No entanto, como em qualquer coisa, há exceções à regra e existem várias situações em que você precisa usar o espaço para nome, mesmo que esteja codificando em Delphi.
Um exemplo é quando você está usando tags nos arquivos ASPX, ASCX ou ASMX. Se você criar uma página da web chamada twebform no arquivo Application.Pages.webform1.pas, a tag da página será:
<%@Página de página = "c#" codeBehind = "webform1.pas" herits = "Application.pages.twebform1"%> |
Outra é ao passar as informações do tipo para .NET na forma de strings, especialmente ao usar APIs e arquivos de configuração baseados em reflexão:
VAR C: TypeConverter; c: = Assembly.createInstance ('sample.controls.tconverter'); |
Essa pequena diferença geralmente leva as pessoas e é algo que você precisa ter cuidado, especialmente ao portar código do Delphi 8 ou converter código de outros idiomas.
这就解释了我原来的疑问 , 在 d2005 中 , 新建一个 .NET dll , 编译 , 在别的编译器中 (c#) , 可以使用 , 但是在 delphi 中自己却不能用 , 虽然用薄可以解决问题 , ,但是包中添加资源很不方便 , 真是不知道 Borland 是怎么想的。