J'essaie d'utiliser l'utilitaire MiscUtil.Conversion dans Silverlight. http://www.yoda.arachsys.com/csharp/miscutil/BigEndianBitConverter dans Silverlight?
Lorsque je tente de le compiler, je reçois une erreur disant que la classe BitConverter de Silverlight n'a pas ces deux méthodes:
DoubleToInt64Bits Int64BitsToDouble
Eh bien, j'ai ouvert réflecteur et les ai trouvés dans mscorlib :
public unsafe long DoubleToInt64Bits(double value)
{
return *(((long*)&value));
}
public unsafe double Int64BitsToDouble(long value)
{
return *(((double*) &value));
}
Mais le problème avec cela est que Silverlight ne permet pas le code dangereux. Dans le menu des propriétés du projet, il y a une case à cocher vide à côté de "autoriser le code non sécurisé", mais vous ne pouvez pas changer la valeur.
Comment puis-je faire cela dans Silverlight?
Oh, ouais c'est vrai. Mon PC a BitConverter.IsLittleEndian comme vrai, mais je me demande si ce serait faux sur un Mac. Je vais ajouter une vérification: if (BitConverter.IsBigEndian) octets = bytes.Reverse(). ToArray(); –
Ces méthodes sont marquées comme dangereuses sur mon ordinateur de bureau, selon Reflector. Ont-ils réussi à en faire des méthodes ordinaires dans Silverlight? –
Je suppose qu'ils peuvent être dangereux sur le plan de la mise en œuvre, mais suffisamment fiables de la part de MS pour les rendre disponibles pour Silverlight. Après tout, si vous appelez le système de fichiers, les graphiques ou autre chose, tôt ou tard, vous avez * obtenu * de frapper un code dangereux. Heureux de savoir que ces * do * existent sur Silverlight si ... –