J'interface avec une API .NET dans IronPython. L'API retourne un objet du mauvais type (une sorte d'objet générique). Je soupçonne que le problème n'apparaît pas dans leur code C# parce que la déclaration de type lorsque l'objet est construit oblige l'objet retourné au type correct. Est-il possible de classer un objet .NET dans IronPython? Je pense que cela ferait l'affaire.pouvez-vous typecast un objet .NET dans IronPython?
Répondre
Pour forcer une conversion que vous pouvez faire:
import clr
convertedObject = clr.Convert(someObject, someType)
Cela recherche et exécuter des conversions implicites/explicites si l'on existe.
Remarque: disponible depuis IronPython 2.6.
Je n'arrivais pas à faire marcher ça. Je ne pouvais pas trouver une méthode "Convert" dans mon clr IronPython. –
'Convert' appelle une méthode de conversion explicite/implicite s'il y en a une; s'il n'y en a pas, il renvoie l'objet inchangé. Il ne peut pas, par exemple, cast un objet à son type parent. –
Si j'essaie d'utiliser ceci pour lancer un UInt32 sur un Int16, j'obtiens une exception OverflowException. Existe-t-il un moyen de faire cela qui fonctionne comme un var y = (short) x explicite; jeter? – marcob
J'ai eu un problème similaire sur un projet il y a quelques mois. Ce fut ma solution:
import clr
clr.GetPythonType(x)
x
peut être un type .NET ou un type qui est dans un fichier dll que vous avez importé en utilisant clr
.
Je ne suis pas un programmeur C#, mais on m'a dit par C# collègues de programmeur que ce code en C# serait:
typeof(x)
Hope this helps
ne marche pas clr.Convert existent dans IronPython 2.0 . Ce n'est pas une solution pour transtyper un objet .NET dans IronPython ?, mais il est une solution de contournement pour convertir les données si vous avez vraiment besoin de l'utiliser de IronPython
Créer une classe comme ceci dans VB.NET et compiler dans une DLL
Imports Microsoft.VisualBasic
Public Class MyConvert
Shared Function converttype(ByVal value As String) As Integer
Return CInt(value)
End Function
End Class
Puis, en IronPython vous faire
clr.AddReference('MyConvert')
from MyConvert import converttype
converted_value = converttype("2.0")
Si vous devez convertir la valeur numérique à un enum
utiliser ce qui suit, car le code ci-dessus fonctionne pas pour les énumérations, mais seulement pour référence types:
Enum.ToObject(CustomEnumType, value)
- 1. Redéclarez les classes .net dans IronPython
- 2. Instantiation types .NET personnalisés dans IronPython
- 3. Typecast chaque objet dans un tableau sur une seule ligne de code, en utilisant LINQ
- 4. Objets proxy dans IronPython
- 5. Comment puis-je accéder aux propriétés remplacées d'un objet API .NET dans IronPython?
- 6. Typecast ou méthode de conversion?
- 7. TypeCast dans le chemin de liaison
- 8. Écrire un objet .NET dans C?
- 9. Comment sérialiser un objet COM dans .Net?
- 10. démarrer le développement .net en ironpython
- 11. Comment héberger un moteur IronPython dans un AppDomain distinct?
- 12. Comment décharger une référence d'assemblage .NET dans IronPython
- 13. Problème lié à l'utilisation d'une classe .net dans ironpython
- 14. Pygments dans IronPython
- 15. problème d'installation de IronPython
- 16. J'ai un problème avec IronPython pour instancier une classe dans IronPython Console
- 17. C# Typecast Paramètre de référence générique
- 18. .NET: Mise au rebut un objet HashAlgorithm
- 19. Utiliser IronPython pour apprendre le framework .NET, est-ce mauvais?
- 20. IronPython sur ASP.NET MVC
- 21. Y at-il un objet OpenFileOrFolderDialog dans .NET?
- 22. Comment pouvez-vous databind un seul objet dans .NET?
- 23. Débogage de scripts IronPython dans un environnement (intégré) hébergé
- 24. Formes Ironpython Studio
- 25. IronPython, cliquez une fois, Erreur .NET 2.0 - pensées?
- 26. Performance IronPython
- 27. Erreur bizarre impression objet PrintDocument dans .NET
- 28. Tâche personnalisée MSBuild dans IronPython/SharpDevelop 3.1
- 29. comment extraire objet .net
- 30. Scripts Embedded IronPython et types de conversion
Pourriez-vous élaborer un peu plus? Que voulez-vous dire par mauvais type? – Rohit
Il semble que IronPython peuple toujours les membres d'un objet en fonction de son type "réel" (puisqu'il utilise la réflexion pour déterminer ce type). Pouvez-vous nous donner un exemple où cela ne tient pas? –