J'ai une application C # 3.0 WinForms qui est occasionnellement nécessaire pour contrôler Excel avec l'automatisation. Cela fonctionne bien avec une liaison précoce normale, mais j'ai eu des problèmes lorsque les gens n'ont pas d'excès installé mais que je souhaite toujours utiliser mon application à l'exception de la partie Excel. La reliure tardive semble être une solution à cela. La reliure tardive est plutôt fastidieuse au C # 3 mais je ne fais rien particulièrement difficile. Je suis suivant http://support.microsoft.com/kb/302902 en tant que démarreur et Cela fonctionne bien. P>
Ma question est de savoir comment puis-je utiliser un énumé par nom? p>
par exemple, comment puis-je utiliser la réflexion pour obtenir la valeur de Je sais que le moyen le plus simple est probablement de créer mon propre énorme local avec la même valeur entière "magique", mais il serait plus agréable de pouvoir y accéder par son nom. Les docs ne listent souvent pas de la valeur pour que je puisse l'obtenir, j'ai probablement besoin d'avoir une petite application de test lié au début qui peut me dire la valeur. p>
merci p> microsoft.office.interop.excel.xlfileformat.xltextwindows code> afin que je puisse l'utiliser un
invokemethod code> appel? p>
3 Réponses :
serait Enum.parse aide? Par exemple
Bien que ce lien puisse répondre à la question, il est préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence. Les réponses uniquement des liaisons peuvent devenir invalides si la page liée change. - de l'avis
@ YohdeadFall Merci, a ajouté un exemple.
Compte tenu de l'exemple suivant:
foreach (var enumValue in typeof(Test).GetEnumValues()) { string name = enumValue.ToString(); int value = (int) enumValue; }
Les valeurs ENUM sont des champs considérés afin que vous puissiez utiliser la méthode Un exemple condensé: P> type.getfield code> pour obtenir la valeur d'une option d'énumération via la réflexion.
// Bar|5
Comment avez-vous obtenu l'objet Assembly Excel dans le code? J'utilise aussi une liaison tardive et si je reçois le type d'un des objets Excel que j'ai dit qu'ils viennent de MSCorLib parce qu'ils sont des objets COM.