gpt4 book ai didi

c# - 返回不同对象的辅助方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:32:33 24 4
gpt4 key购买 nike

我正在尝试将更多 DRY 原则付诸实践,但遇到了知识的局限性。我已经编写了一个反序列化例程,我想将其用于不同的对象。

好吧,它对一个对象非常有用,但是当我将它移到一个帮助程序中并去为另一个对象重用反序列化代码时......当然它返回了错误的类型......但是我将如何返回不同的类型...重载(不是很干?)...可能返回一个通用对象然后进行转换...但是我的反序列化行将如何工作?

对象 1 是 ABCD

对象 2 是 WXYZ

辅助方法是:

internal static List<ABCD> DeserializeConfig()
{
.....snip....
XmlSerializer serializer = new XmlSerializer(typeof(List<ABCD>), xRoot);

//how would this line above work..pass in the object type like below

XmlSerializer serializer = new XmlSerializer(typeof(_passedObject), xRoot);
}

谢谢你的帮助

最佳答案

只是使方法通用

internal static List<T> DeserializeConfig<T>() where T : ISerializable
{
.....snip....
XmlSerializer serializer = new XmlSerializer(typeof(List<T>), xRoot);

}

以上假定自定义序列化,您可以通过实现 ISerializable 接口(interface)来控制流程的完成方式、具体方式、哪些字段等。这为您提供了编译器时间检查。您也可以简单地使用基本序列化,并记住在适当的情况下使用 [Serializable] 属性和 [NonSerializable] 一起声明您的类型 - see docs

关于c# - 返回不同对象的辅助方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23517403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com