From 4b4c17ac24613f723eb2f830a09417c0d5c50301 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Thu, 4 Apr 2024 14:03:02 -0400 Subject: [PATCH] Make model type inherent to interface --- SabreTools.Serialization/Interfaces/IWrapper.cs | 11 ++++++++++- SabreTools.Serialization/Wrappers/WrapperBase.cs | 5 ++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/SabreTools.Serialization/Interfaces/IWrapper.cs b/SabreTools.Serialization/Interfaces/IWrapper.cs index 5985746e..dc2b9edf 100644 --- a/SabreTools.Serialization/Interfaces/IWrapper.cs +++ b/SabreTools.Serialization/Interfaces/IWrapper.cs @@ -1,11 +1,20 @@ namespace SabreTools.Serialization.Interfaces { - public interface IWrapper + /// + /// Represents a wrapper around a top-level model + /// + /// Top-level model for the wrapper + public interface IWrapper { /// /// Get a human-readable description of the wrapper /// string Description(); + + /// + /// Get the backing model + /// + TModel GetModel(); #if !NETFRAMEWORK /// diff --git a/SabreTools.Serialization/Wrappers/WrapperBase.cs b/SabreTools.Serialization/Wrappers/WrapperBase.cs index 7ab54896..4805c188 100644 --- a/SabreTools.Serialization/Wrappers/WrapperBase.cs +++ b/SabreTools.Serialization/Wrappers/WrapperBase.cs @@ -8,7 +8,7 @@ using SabreTools.Serialization.Interfaces; namespace SabreTools.Serialization.Wrappers { - public abstract class WrapperBase : IWrapper + public abstract class WrapperBase : IWrapper { #region Descriptive Properties @@ -24,6 +24,9 @@ namespace SabreTools.Serialization.Wrappers #region Properties + /// + public T GetModel() => Model; + /// /// Internal model ///