Skip to content

Commit c24933d

Browse files
committed
让测试工具支持AOT中。。。
1 parent 26abeb4 commit c24933d

File tree

4 files changed

+24
-7
lines changed

4 files changed

+24
-7
lines changed

QpTestClient/ConnectForm.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using System.Text;
1414
using System.Threading.Tasks;
1515
using System.Windows.Forms;
16+
using QpTestClient.Utils;
1617

1718
namespace QpTestClient
1819
{
@@ -31,8 +32,8 @@ public ConnectForm()
3132
}
3233

3334
public void EditConnectionInfo(TestConnectionInfo connectionInfo)
34-
{
35-
this.ConnectionInfo = XmlConvert.Deserialize<TestConnectionInfo>(XmlConvert.Serialize(connectionInfo));
35+
{
36+
this.ConnectionInfo = XmlConvert.Deserialize<TestConnectionInfo>(XmlConvert.Serialize(connectionInfo), QpdFileUtils.XmlConvertOptions);
3637
txtName.Text = connectionInfo.Name;
3738
var qpClientTypeInfo = QpClientTypeManager.Instance.GetAll().FirstOrDefault(t => t.ClientType.FullName == connectionInfo.QpClientTypeName);
3839
cbConnectType.SelectedItem = qpClientTypeInfo;

QpTestClient/QpTestClient.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@
5454
</ItemGroup>
5555

5656
<ItemGroup>
57-
<PackageReference Include="Quick.Xml" Version="1.0.1" />
57+
<PackageReference Include="Quick.Xml" Version="1.0.2" />
5858
</ItemGroup>
5959

6060
<ItemGroup>

QpTestClient/TestConnectionInfo.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using Newtonsoft.Json.Linq;
2-
using Quick.Protocol;
1+
using Quick.Protocol;
32
using System;
43
using System.Collections.Generic;
54
using System.Text;

QpTestClient/Utils/QpdFileUtils.cs

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1-
using System;
1+
using Quick.Protocol;
2+
using Quick.Xml;
3+
using System;
24
using System.Collections.Generic;
35
using System.IO;
6+
using System.Linq;
47
using System.Text;
58

69
namespace QpTestClient.Utils
@@ -47,10 +50,24 @@ public static void DeleteQpbFile(TestConnectionInfo connectionInfo)
4750
File.Delete(file);
4851
}
4952

53+
public static Quick.Xml.XmlConvertOptions XmlConvertOptions { get; private set; }
54+
5055
public static TestConnectionInfo Load(string file)
5156
{
57+
if (XmlConvertOptions == null)
58+
{
59+
XmlConvertOptions = new XmlConvertOptions()
60+
{
61+
InstanceFactory = QpClientTypeManager.Instance.GetAll().ToDictionary(t => t.OptionsType, t =>
62+
{
63+
return new Func<object>(() => t.CreateOptionsInstanceFunc());
64+
})
65+
};
66+
XmlConvertOptions.InstanceFactory.Add(typeof(TestConnectionInfo), () => new TestConnectionInfo());
67+
XmlConvertOptions.InstanceFactory.Add(typeof(QpInstruction), () => new QpInstruction());
68+
}
5269
var content = File.ReadAllText(file);
53-
return Quick.Xml.XmlConvert.Deserialize<TestConnectionInfo>(content);
70+
return Quick.Xml.XmlConvert.Deserialize<TestConnectionInfo>(content, XmlConvertOptions);
5471
}
5572
}
5673
}

0 commit comments

Comments
 (0)