Je travaille avec des paquets que je peux recevoir ou envoyer en tant que tableau d'octets, qui a une structure fixe. Donc, je suis en train de créer une union efficace comme suit:Unions de structures de taille fixe à utiliser dans un contexte sûr
using System; // etc..
namespace WindowsApplication1
{
public partial class Main : Form
{
public const int PktMaxSize = 124;
// ...etc..
// ...will use Pkt structure below...
}
[System.Runtime.InteropServices.StructLayout(LayoutKind.Explicit)]
public struct Pkt
{
[System.Runtime.InteropServices.FieldOffset(0)]
fixed Byte bytes[Main.PktMaxSize]; // complete byte pkt
[System.Runtime.InteropServices.FieldOffset(0)]
fixed Byte PktID[8];
[System.Runtime.InteropServices.FieldOffset(8)]
UInt16 Properties;
// ...etc..
}
}
J'obtiens une erreur C#
Pointeurs et des tampons de taille ne peuvent être utilisés dans un contexte dangereux
Que dois-je faire pour être capable de créer et d'utiliser des structures «dangereuses» dans un environnement sûr? Merci pour votre aide - ouvert à toutes les suggestions sur la façon de gérer les structures de paquets qui peuvent facilement être converties vers et à partir d'un flux d'octets fixe reçu par (ou envoyé par) une classe d'interopérabilité C++.