mirror of
https://github.com/Nioux/AideDeJeu.git
synced 2025-10-29 14:35:45 +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.Threading.Tasks;
|
||||
using System.Xml;
|
||||
using YamlDotNet.Core;
|
||||
using YamlDotNet.Core.Events;
|
||||
using YamlDotNet.Serialization;
|
||||
using YamlDotNet.Serialization.NamingConventions;
|
||||
|
||||
namespace AideDeJeuLib
|
||||
{
|
||||
|
|
@ -115,6 +119,8 @@ namespace AideDeJeuLib
|
|||
|
||||
[DataMember]
|
||||
public string ParentName { get; set; }
|
||||
|
||||
[YamlIgnore]
|
||||
[IgnoreDataMember]
|
||||
[Ignore]
|
||||
public string ParentNameLink
|
||||
|
|
@ -143,6 +149,8 @@ namespace AideDeJeuLib
|
|||
public int NameLevel { get; set; }
|
||||
[DataMember]
|
||||
public string AltName { get; set; }
|
||||
|
||||
[YamlIgnore]
|
||||
[IgnoreDataMember]
|
||||
public string AltNameText
|
||||
{
|
||||
|
|
@ -168,9 +176,43 @@ namespace AideDeJeuLib
|
|||
}
|
||||
[DataMember]
|
||||
public string Source { get; set; }
|
||||
|
||||
[YamlIgnore]
|
||||
[DataMember]
|
||||
public virtual string Markdown { get; set; }
|
||||
[DataMember]
|
||||
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 spells = await context.Spells.ToListAsync();
|
||||
|
||||
var serializer = new SerializerBuilder().WithNamingConvention(new PascalCaseNamingConvention()).Build();
|
||||
var yaml = serializer.Serialize(spells.FirstOrDefault());
|
||||
var serializer = new SerializerBuilder().WithTagMapping("!MonsterHD", typeof(MonsterHD)).EnsureRoundtrip().WithNamingConvention(new PascalCaseNamingConvention()).Build();
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue