mirror of
				https://github.com/Nioux/AideDeJeu.git
				synced 2025-10-31 07:26:09 +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
	
	 Yan Maniez
						Yan Maniez