diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs index ded88f1e..dc77c7b2 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Utilities/Internal/XmlUtility.cs @@ -60,6 +60,11 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Utilities return Serialize(typeof(T), obj); } + public static string Serialize(object obj) + { + return Serialize(obj.GetType(), obj); + } + public static object Deserialize(Type type, string xml) { using var reader = new StringReader(xml); diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/TestCase_XmlUtilityTests.cs b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/TestCase_XmlUtilityTests.cs new file mode 100644 index 00000000..29261088 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/TestCase_XmlUtilityTests.cs @@ -0,0 +1,17 @@ +using Xunit; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests +{ + public class TestCase_XmlUtilityTests + { + [Fact(DisplayName = "测试用例:XML 序列化派生类")] + public void TestXmlSerializeSubClass() + { + Assert.Null(Record.Exception(() => + { + object obj = new Models.SignRequest() { UserId = "TEST" }; + Utilities.XmlUtility.Serialize(obj); + })); + } + } +}