我正在處理可以接收或發送爲具有固定結構的Byte數組的數據包 。所以我想,如下所示創建一個有效的 工會:在安全環境中使用的固定大小結構的聯合體
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..
}
}
我得到一個C#錯誤
指針和大小緩衝區只能在不安全的上下文中使用
我需要做什麼才能在安全的環境中創建和使用「不安全」結構?
感謝您的幫助 - 歡迎您提供關於如何處理可輕鬆轉換爲和接收(或發送)C++ interop類的固定字節流的數據包結構的建議。