0

私は単純なタイプを持っていstructます。intまたはのようなよく知られた単純な型に暗黙的に変換可能byteです。

structにはプロパティがないので、使い方は次のようになります

int i = 1;    
MyStruct a = i;

また

MyStruct a = MyStruct.Empty;
int i = (i)a;

コードは機能しています。structただし、シリアル化に問題があります。同じようにシリアライズしたいと思いSystem.Int32ますGuid

ToString()デバッガーでも問題なく動作しています。すべて問題ありません。構造体は次のようにマークされていますSerializable

新しい編集:

シリアル化の問題は、シリアル化してstructいないことです。シリアル化されたテキスト (JSON など) では、空の文字列です。返された値と同じ値を見たいときToString()

私が使用しているシリアル化のために:

[DataContract]
public class MyClass
{
   [DataMember]
   public Guid Id { get; set;}

   [DataMember]
   public MyStruct A { get; set;}
}

var myclass = new MyClass() { Id = Guid.NewGuid(); A = MyStruct.MyNewStruct() }
string data = JsonConvert.SerializeObject(myClass);

Guid はシリアライズ中です - Id: "...guid..." , A は違います - A: ""

値などの構造体にプロパティを追加すると、次のようにシリアル化されます: A: [Value: "myvalue"]

このValue部分は避けたいと思います。

4

0 に答える 0