У меня есть производный класс, который только добавляет методы базовому классу, и я хотел бы сериализовать его как свой базовый класс, проблема, с которой я сталкиваюсь, заключается в том, что это для игрового мода, и я не могу напрямую изменить базовый класс для добавления XmlInclude в базу.XmlInclude для производного класса без привязки к базовому классу?
namespace CustomNPC
{
public class CustomNPCInteract : NPC
{
public CustomNPCInteract()
:base()
{
this.initializeNPC();
}
public CustomNPCInteract(AnimatedSprite sprite, Vector2 position, string defaultMap, int facingDir, string name, bool dateable, Dictionary<int, int[]> schedule, Texture2D portrait)
: base(sprite, position, defaultMap, facingDir, name, dateable, schedule, portrait)
{
this.initializeNPC();
}
public CustomNPCInteract(AnimatedSprite sprite, Vector2 position, int facingDir, string name, StardewValley.LocalizedContentManager manager = null)
:base(sprite, position, facingDir, name, manager)
{
this.initializeNPC();
}
private void initializeNPC()
{
this.age = 2; //child
this.manners = 2; //rude
this.socialAnxiety = 1; //shy
this.optimism = 1; //negative
this.gender = 1; //female
this.datable = false; //not-datable
this.homeRegion = 0; //Other
this.birthday_Season = "fall"; //fall 8
this.birthday_Day = 8;
}
}
}
Как мое пространство имен и класс настроены. CustomNPCInteract наследует NPC, и я бы хотел, чтобы он сериализовался, как и любой другой NPC, но без доступа для изменения этого конкретного класса.
Любая помощь будет принята с благодарностью
Спасибо за комментарий. Фактическая игра, в которой я пишу мод, уже имеет свой собственный экземпляр serializer под SaveGame.serializer, который он использует для сохранения данных. Есть ли возможность добавить к нему вместо того, чтобы перезаписать свой существующий экземпляр? – Kriogenic
Нет. Вам придется переопределить его. XML не поддается добавлению данных, поскольку в любом XML-документе имеется не более одного корневого узла. Это будет простой вопрос, чтобы заменить сериализатор по умолчанию своим, но не знаю больше, я не могу делать никаких дальнейших предложений. – AQuirky