小编use*_*982的帖子

在C#中打开类类型

我在C#中有一堆存储的,序列化的类(都是从基类继承的).与序列化类一起,我还存储了一个枚举值,用于标识序列化的子类.

这意味着每当我想序列化/反序列化类时,我必须使用几个基于枚举的大转换语句来决定要反序列化的子类.似乎有一种方法可以使用某种类似结构图的东西来做到这一点.(它用于小部件/仪表板,因此将来可能会出现更多子类).

现在,它看起来像这样......

 widget = DeserializeFromDb(GetWidgetType(widgetrow.WidgetType),  widgetRow.serializedWidget);

   private HtmlWidget DeserializeFromDb(WidgetType type, string serialized)
   {
        Basics.Serial.IStringSerializer serializer = Basics.Serial.BinarySerializer.GetInstance();

        switch (type)
        {
            case WidgetType.AbstractBase:
                return serializer.Deserialize<HtmlWidget>(serialized);
                break;
            case WidgetType.Widget1:
                return serializer.Deserialize<Widget1>(serialized);
                break;
            case WidgetType.Widget2:
                return serializer.Deserialize<Widget2>(serialized);
                break;
       }
  }
Run Code Online (Sandbox Code Playgroud)

c# serialization

2
推荐指数
1
解决办法
168
查看次数

标签 统计

c# ×1

serialization ×1