maintenant la persistance detecte automatiquement les iregles

master
Céleste BARBOSA 6 months ago
parent 0298fe35f4
commit 04b3f49a14

3
.gitignore vendored

@ -861,4 +861,5 @@ FodyWeavers.xsd
# JetBrains Rider # JetBrains Rider
*.sln.iml *.sln.iml
/Sources/Fichiers/* /Sources/Fichiers/*
Sources/Fichiers/*

@ -10,8 +10,6 @@ namespace CoreLibrary.Joueurs
/// Représente un joueur. /// Représente un joueur.
/// </summary> /// </summary>
[DataContract] [DataContract]
[KnownType(typeof(ReglesClassiques))]
[KnownType(typeof(ReglesDifficiles))]
public class Joueur : IEstPersistant public class Joueur : IEstPersistant
{ {
/// <summary> /// <summary>

@ -12,8 +12,6 @@ namespace CoreLibrary
/// Classe représentant une partie. /// Classe représentant une partie.
/// </summary> /// </summary>
[DataContract] [DataContract]
[KnownType(typeof(ReglesClassiques))]
[KnownType(typeof(ReglesDifficiles))]
public class Partie : IEstPersistant public class Partie : IEstPersistant
{ {
/// <summary> /// <summary>

@ -3,6 +3,7 @@ using System.Text;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Xml; using System.Xml;
using CoreLibrary.Persistance; using CoreLibrary.Persistance;
using CoreLibrary.Regles;
namespace Persistance.Persistance namespace Persistance.Persistance
{ {
@ -54,7 +55,11 @@ namespace Persistance.Persistance
if (!File.Exists(fichier)) if (!File.Exists(fichier))
return []; return [];
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[])); DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(
typeof(T[]),
typeof(IRegles).Assembly.GetTypes()
.Where(type => typeof(IRegles).IsAssignableFrom(type) && type.IsClass)
);
T[]? elements; T[]? elements;
using (FileStream s = File.OpenRead(fichier)) using (FileStream s = File.OpenRead(fichier))
@ -80,7 +85,11 @@ namespace Persistance.Persistance
Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), nomDossier)); Directory.SetCurrentDirectory(Path.Combine(Directory.GetCurrentDirectory(), nomDossier));
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(T[])); DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(
typeof(T[]),
typeof(IRegles).Assembly.GetTypes()
.Where(type => typeof(IRegles).IsAssignableFrom(type) && type.IsClass)
);
using (FileStream s = File.Create(fichier)) using (FileStream s = File.Create(fichier))
{ {

Loading…
Cancel
Save