J'ai le problème suivant: J'ai un projet en C# où j'utilise un composant COM tiers. Donc, le problème est que le composant ci-dessus a une méthode, qui prend une chaîne et un certain nombre de paires clé-valeur en tant qu'arguments. J'ai déjà réussi à appeler cette méthode via JavaScript comme ça:Passage d'une paire clé-valeur à une méthode COM à partir de .NET
var srcName
srcName = top.cadView.addSource('Database', { driver : 'Oracle', host : '10.10.1.123', port : 1234, database : 'someSID', user : 'someuser', password : 'somepass' })
if (srcName != '')
{
...
}
... et cela a parfaitement fonctionné. Cependant je n'ai aucune idée comment faire la même chose en utilisant C#. J'ai essayé de passer les paires comme Dictionary et Struct/Class mais cela me jette un "Specified cast n'est pas valide." exception. J'ai aussi essayé d'utiliser Hashtable comme ça:
Hashtable args = new Hashtable();
args.Add("driver", "Oracle");
args.Add("host", "10.10.1.123");
args.Add("port", 1234);
args.Add("database", "someSID");
args.Add("user", "someUser");
args.Add("password", "samePass");
String srcName = axCVCanvas.addSource("Database", args);
et bien qu'il ne jette pas une exception, il ne parvient toujours pas faire le travail, me écrire dans un fichier journal
[Erreur] [14 : 38: 33,281] Cad :: SourceDB :: SourceDB(): manquant paramètre 'pilote'
Mmmmm accéder à une base de données à partir de javascript ... –
Avez-vous une typelib décrivant l'interface COM? –