问题描述
我正在应用工厂模式。有一个接口,并且有两个类从该接口继承。
我还创建了一个类,其作用是创建工厂对象。如果创建了工厂对象,则出现错误。 “无重载方法”。因为此方法不在界面中。
[Test]
public void XML_Deserialize_ToObject_FromURL_WithRootAttirbuteName()
{
var xmlSerializerTCMB = GenericSerializer<Tarih_Date>.CreateSerializerObject(DataFormatType.XML);
var kur = xmlSerializerTCMB.DeserializefromLink("https://www.tcmb.gov.tr/kurlar/today.xml","Tarih_Date");
Assert.IsTrue(kur.Currency.Length > 0);
}
下面列出的代码段
接口
public interface IGenericSerializer<T>
{
void SerializetoFile(T objectData,string fileName);
string SerializetoString(T objectData);
T DeserializefromFile(string fileName);
T DeserializefromString(string mediaTypestring);
T DeserializefromLink(string link);
}
XmlGenericSerializer,此方法具有额外的方法(DeserializefromLink),该方法不属于该接口。
public class XmlGenericSerializer<T> : IGenericSerializer<T>
{
public T DeserializefromFile(string fileName)
{
}
public T DeserializefromLink(string link)
{
}
public T DeserializefromString(string xmlString)
{
}
public void SerializetoFile(T objectData,string fileName)
{
}
public string SerializetoString(T objectData)
{
}
public T DeserializefromLink(string link,string xmlRootAttributeName)
{
}
}
JsonGenericSerializer
public class JsonGenericSerializer<T> : IGenericSerializer<T>
{
public T DeserializefromFile(string fileName)
{
}
public T DeserializefromLink(string link)
{
}
public T DeserializefromString(string jsonString)
{
}
public void SerializetoFile(T objectData,string fileName)
{
}
public string SerializetoString(T objectData)
{
}
}
工厂类
public static class GenericSerializer<T>
{
public static IGenericSerializer<T> CreateSerializerObject(DataFormatType dataFormat)
{
IGenericSerializer<T> serializer = null;
switch (dataFormat)
{
case DataFormatType.XML:
serializer = new XmlGenericSerializer<T>();
break;
case DataFormatType.JSON:
serializer = new JsonGenericSerializer<T>();
break;
default:
break;
}
return serializer;
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)