C#
シリアライズしてXMLにできる(Privateのみ出力できない)
出典: 【C#】プロパティとフィールド(メンバ変数)の決定的な違い! — プロパティのおいしさ / シリアライズしてXMLにできる(Privateのみ出力できない)
public class XmlHelper<T> where T : class
{
public string TargetPath { get; set; }
private Encoding encoding => System.Text.Encoding.GetEncoding("shift_jis");
public XmlHelper(string targetPath)
{
TargetPath = targetPath;
}
public XmlHelper() : base()
{
}
public void Save(T data)
{
var serializer = new XmlSerializer(typeof(T));
using (var writer = new StreamWriter(TargetPath, false, encoding))
{
serializer.Serialize(writer, data);
writer.Close();
}
}
/// <summary>
/// XMLファイルを読み込む
/// </summary>
public T Read()
{
var serializer = new XmlSerializer(typeof(T));
T obj;
using (var reader = new StreamReader(TargetPath, encoding))
{
obj = (T)serializer.Deserialize(reader);
reader.Close();
}
return obj;
}
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
Source収録記事
この snippet は記事の「プロパティのおいしさ / シリアライズしてXMLにできる(Privateのみ出力できない)」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。
同じ記事から
5 件private string _gender; public string Gender { get { return _gender; }未収録
プロパティはフィールド(メンバ変数)へのアクセスする手段でしかない
#03c4cbbe71da
private string _gender; public string Gender { get => _gender;未収録
プロパティはフィールド(メンバ変数)へのアクセスする手段でしかない
#f0d0d8bc2968
public class User { public int ID { get; set; } public string Name { get; set; }未収録
Datagridに値を表示できる
#147badd2385c
private void Form1_Load(object sender, EventArgs e) { _users = new List<User>() {未収録
Datagridに値を表示できる
#10a217f49692
var props = typeof(User).GetProperties(); var str = new StringBuilder(); foreach (var user in _users)未収録
プロパティを動的に探して色々できる
#bf30b0e5ea43
