そのため、ブロブを使用したカスタム属性がどのように機能するかを正確に理解しようとしています。バイナリ形式は非常に...奇妙に思えます。
ildasm の例
.custom instance void [mscorlib]System.Runtime.Versioning.TargetFrameworkAttribute::.ctor(string) =
( 01 00 19 57 69 6E 64 6F 77 73 50 68 6F 6E 65 2C // ...WindowsPhone,
56 65 72 73 69 6F 6E 3D 76 38 2E 30 01 00 54 0E // Version=v8.0..T.
14 46 72 61 6D 65 77 6F 72 6B 44 69 73 70 6C 61 // .FrameworkDispla
79 4E 61 6D 65 11 57 69 6E 64 6F 77 73 20 50 68 // yName.Windows Ph
6F 6E 65 20 38 2E 30 ) // one 8.0
これはどのような形式ですか?これが本当の UTF-8 かどうかはわかりませんが、なぜ最初の 2 バイトが 0x01 と 0x00 なのですか? また、逆コンパイラはこれを属性として取得します。
[assembly: TargetFramework("WindowsPhone,Version=v8.0", FrameworkDisplayName = "Windows Phone 8.0")]
このすべてがどのように正確に機能しますか?