Partilhar via


Arquivo de configuração do aplicativo (ACF)

Pode haver aspetos do seu aplicativo distribuído que afetam um componente, mas não têm nada a ver com outro. Por exemplo, um objeto pode conter uma estrutura de dados grande e complexa e passar o conteúdo dessa estrutura de dados para outro objeto. O layout exato dessa estrutura de dados pode não fazer sentido para o aplicativo recetor. Além disso, a estrutura pode conter tipos de dados que o compilador MIDL não reconhece e não pode gerar código de marshaling e unmarshaling.

Os aplicativos cliente podem compartilhar a mesma interface, mas são executados em plataformas diferentes; cada um deles pode precisar de seu próprio conjunto de rotinas de marshaling. Finalmente, os clientes individuais podem nem sempre precisar do mesmo conjunto de funções. É ineficiente gerar código de stub para funções que nunca serão implementadas em um aplicativo cliente específico.

Ao definir esses aspetos locais de sua interface em um arquivo de configuração de aplicativo (ACF), você pode separar as diferenças entre as interfaces de cliente de sua representação de rede, permitindo que o servidor envie e receba dados em um formato consistente e tornando seu código de stub mais compacto e eficiente.

A estrutura e a sintaxe de uma definição de interface ACF são idênticas à definição IDL:

[ interface-attribute-list] interface interface-name {. . .}

Por padrão, o nome da interface ACF deve corresponder ao seu nome na definição IDL. No entanto, quando você usa a opção de compilador MIDL / acf para especificar explicitamente um nome de arquivo ACF, os nomes de interface não precisam corresponder. Esse recurso permite que várias interfaces compartilhem uma única especificação ACF.