【发布时间】:2019-06-03 01:51:17
【问题描述】:
我有一个类必须保存到磁盘,然后在每次应用初始化时加载。我不在乎创建的文件是 Json、XML 还是二进制文件。这是课程:
public class PhotoSpot_v01
{
public int ID { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public int Rating { get; set; }
public bool Reminder { get; set; }
public bool Toast { get; set; }
private double Latitude { get; set; }
private double Longitude { get; set; }
private double Altitude { get; set; }
public GoogleMapsAPI.TimeZone TimeZone { get; set; }
public globalVars.Tags MainTag { get; set; }
public version Version { get; set; }
public Milestone_v01 Milestone { get; set; }
public List<Image_v01> Images { get; set; }
public List<URL_v01> URLs { get; set; }
public List<globalVars.Tag> Tags { get; set; }
public List<Date_v01> Dates { get; set; }}
在这里,类和枚举,......在主类中使用:
public class Milestone_v01
{
public bool freeMilestone { get; set; }
public string Title { get; set; }
public double Latitude { get; set; }
public double Longitude { get; set; }
public double Altitude { get; set; }
public globalVars.Astro Astro { get; set; }
}
public enum Astro
{
Sun, Moon, Night, Any
}
public class Image_v01
{
public string imageURI { get; set; }
public bool isDownloaded { get; set; }
}
public class URL_v01
{
public string sURL { get; set; }
}
public class Tag_v01
{
public globalVars.Tags TagName { get; set; }
}
public class Date_v01
{
public DateTime DateStart { get; set; }
public DateTime DateEnd { get; set; }
}
如何保存枚举值,特别是 DateTime 和 Geopoint 值?
【问题讨论】:
-
enum值通常被序列化为它们的int值。 -
这里的
Geopoint是什么?它没有出现在代码示例中 - 这是一个特定的 API 吗? -
另外:您在上面考虑哪些类型是“不可序列化”的?大多数情况下看起来很合理,尽管我们无法看到所有内容(例如,不知道
Tags/Tag/TimeZone是什么) -
@MarcGravell Geopoint 它是一个处理地球表面地理空间位置的类。 docs.microsoft.com/en-us/uwp/api/…Tags/Tag 是枚举,TimeZone 是只有 double 和 string 值的类,所以没有问题,这就是为什么我没有在上面的代码中插入。
标签: c# class uwp save serializable