Réglage dllimport par programmation en C#

Je suis en utilisant DllImport dans ma solution.

Mon problème est que j'ai deux versions de la même DLL construit pour la version 32 bits et une autre pour la version 64 bits.

Ils exposent les mêmes fonctions avec les mêmes noms et les mêmes signatures.
Mon problème est que je dois utiliser deux méthodes statiques qui exposent ces et puis au moment de l'exécution d'utilisation IntPtr taille pour déterminer la bonne à invoquer.

private static class Ccf_32
{
    [DllImport(myDllName32)]
    public static extern int func1();
}

private static class Ccf_64
{
    [DllImport(myDllName64)]
    public static extern int func1();
}

Je dois le faire parce que myDllName32 et myDllName64 doit être constante et je n'ai pas trouvé un moyen de le régler au moment de l'exécution.

Quelqu'un aurait-il une solution élégante pour cela j'ai donc pu se débarrasser de la duplication de code et la constante IntPtr taille de la vérification.

Si je pourrais définir le nom de fichier, je n'aurais plus qu'à vérifier une fois et j'ai pu me débarrasser d'une tonne de code à répétition.

A aucun sens dans la sélection lors de l'exécution si la différence est l'ensemble de la compilation.

OriginalL'auteur Matt | 2009-08-23