mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-30 15:06:06 +00:00
Héritage + YAML
This commit is contained in:
parent
bb6e12ede4
commit
396a6f960a
2 changed files with 47 additions and 2 deletions
|
|
@ -8,6 +8,10 @@ using System.Runtime.Serialization;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Xml;
|
using System.Xml;
|
||||||
|
using YamlDotNet.Core;
|
||||||
|
using YamlDotNet.Core.Events;
|
||||||
|
using YamlDotNet.Serialization;
|
||||||
|
using YamlDotNet.Serialization.NamingConventions;
|
||||||
|
|
||||||
namespace AideDeJeuLib
|
namespace AideDeJeuLib
|
||||||
{
|
{
|
||||||
|
|
@ -115,6 +119,8 @@ namespace AideDeJeuLib
|
||||||
|
|
||||||
[DataMember]
|
[DataMember]
|
||||||
public string ParentName { get; set; }
|
public string ParentName { get; set; }
|
||||||
|
|
||||||
|
[YamlIgnore]
|
||||||
[IgnoreDataMember]
|
[IgnoreDataMember]
|
||||||
[Ignore]
|
[Ignore]
|
||||||
public string ParentNameLink
|
public string ParentNameLink
|
||||||
|
|
@ -143,6 +149,8 @@ namespace AideDeJeuLib
|
||||||
public int NameLevel { get; set; }
|
public int NameLevel { get; set; }
|
||||||
[DataMember]
|
[DataMember]
|
||||||
public string AltName { get; set; }
|
public string AltName { get; set; }
|
||||||
|
|
||||||
|
[YamlIgnore]
|
||||||
[IgnoreDataMember]
|
[IgnoreDataMember]
|
||||||
public string AltNameText
|
public string AltNameText
|
||||||
{
|
{
|
||||||
|
|
@ -168,9 +176,43 @@ namespace AideDeJeuLib
|
||||||
}
|
}
|
||||||
[DataMember]
|
[DataMember]
|
||||||
public string Source { get; set; }
|
public string Source { get; set; }
|
||||||
|
|
||||||
|
[YamlIgnore]
|
||||||
[DataMember]
|
[DataMember]
|
||||||
public virtual string Markdown { get; set; }
|
public virtual string Markdown { get; set; }
|
||||||
[DataMember]
|
[DataMember]
|
||||||
public string FullText { get; set; }
|
public string FullText { get; set; }
|
||||||
|
|
||||||
|
[IgnoreDataMember]
|
||||||
|
[YamlIgnore]
|
||||||
|
public Dictionary<string, Type> ClassMapping = new Dictionary<string, Type>()
|
||||||
|
{
|
||||||
|
{ nameof(Generic), typeof(Generic) },
|
||||||
|
};
|
||||||
|
|
||||||
|
[IgnoreDataMember]
|
||||||
|
[YamlIgnore]
|
||||||
|
public string Yaml
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
var serializer = new SerializerBuilder()
|
||||||
|
.WithTagMapping($"!{nameof(MonsterHD)}", typeof(MonsterHD))
|
||||||
|
.EnsureRoundtrip()
|
||||||
|
.WithNamingConvention(new PascalCaseNamingConvention())
|
||||||
|
.Build();
|
||||||
|
return serializer.Serialize(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[IgnoreDataMember]
|
||||||
|
[YamlIgnore]
|
||||||
|
public string YamlMarkdown
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return $"---\n{Yaml}---\n{Markdown}";
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -321,8 +321,11 @@ namespace AideDeJeuCmd
|
||||||
var monstersVO = await context.MonstersVO.ToListAsync();
|
var monstersVO = await context.MonstersVO.ToListAsync();
|
||||||
var spells = await context.Spells.ToListAsync();
|
var spells = await context.Spells.ToListAsync();
|
||||||
|
|
||||||
var serializer = new SerializerBuilder().WithNamingConvention(new PascalCaseNamingConvention()).Build();
|
var serializer = new SerializerBuilder().WithTagMapping("!MonsterHD", typeof(MonsterHD)).EnsureRoundtrip().WithNamingConvention(new PascalCaseNamingConvention()).Build();
|
||||||
var yaml = serializer.Serialize(spells.FirstOrDefault());
|
var deserializer = new DeserializerBuilder().WithTagMapping("!MonsterHD", typeof(MonsterHD)).WithNamingConvention(new PascalCaseNamingConvention()).Build();
|
||||||
|
var yaml = serializer.Serialize(monsters.FirstOrDefault());
|
||||||
|
var sr = new StringReader(yaml);
|
||||||
|
var deser = deserializer.Deserialize(sr);
|
||||||
Console.WriteLine(yaml);
|
Console.WriteLine(yaml);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue