У меня есть интерфейс IStorageManager
, который позволяет мне хранить данные, различные реализации предназначены для хранения на основе файлов json, на основе файлов xml и т. Д.
У меня есть интерфейс IStorable
, и я хочу, чтобы все классы, реализующие IStorable
, имели заголовок [Serializable]. Так что в IStorageManager
я могу реализовать это так:
public interface IStorageManager
{
IStorable Load<IStorable>(string Path);
void Save<IStorable>(IStorable objToSave, string path);
}
public class XMLStorageManager : IStorageManager
{
public void Save<T>(T objToSave, string path)
{
System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer(typeof(T));
using (TextWriter writer = new System.IO.StreamWriter(System.IO.Path.GetFullPath(path)))
{
serializer.Serialize(writer, typeof(T));
}
}
}
Есть ли способ указать, что в интерфейсе ??