refactor: 优化代码

This commit is contained in:
Fu Diwei
2024-07-18 15:56:20 +08:00
parent 08c675c6ba
commit fdb2d2a982
11 changed files with 38 additions and 22 deletions

View File

@@ -6,18 +6,18 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.Finance.InteropServices
{
internal static class MarshalerHelper
{
public static string PtrToStringAnsi(IntPtr ptr)
public static string? PtrToStringAnsi(IntPtr ptr)
{
if (ptr == IntPtr.Zero)
return default!;
return null;
return Marshal.PtrToStringAnsi(ptr)!;
}
public static string PtrToStringUTF8(IntPtr ptr)
public static string? PtrToStringUTF8(IntPtr ptr)
{
if (ptr == IntPtr.Zero)
return default!;
return null;
#if NETCOREAPP || NET5_0_OR_GREATER
return Marshal.PtrToStringUTF8(ptr)!;

View File

@@ -159,7 +159,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.Finance
IsRunOnWindows() ? FinanceDllWindowsPInvoker.GetContentFromSlice(dataPtr) :
IsRunOnLinux() ? FinanceDllLinuxPInvoker.GetContentFromSlice(dataPtr) :
throw new PlatformNotSupportedException();
string dataContent = MarshalerHelper.PtrToStringUTF8(dataContentPtr);
string dataContent = MarshalerHelper.PtrToStringUTF8(dataContentPtr)!;
response = JsonSerializer.Deserialize<Models.GetChatRecordsResponse>(dataContent);
response._InternalRawBytes = Encoding.UTF8.GetBytes(dataContent);
@@ -253,7 +253,7 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.Finance
IsRunOnWindows() ? FinanceDllWindowsPInvoker.GetContentFromSlice(dataPtr) :
IsRunOnLinux() ? FinanceDllLinuxPInvoker.GetContentFromSlice(dataPtr) :
throw new PlatformNotSupportedException();
string dataContent = MarshalerHelper.PtrToStringUTF8(dataContentPtr);
string dataContent = MarshalerHelper.PtrToStringUTF8(dataContentPtr)!;
try
{

View File

@@ -7,11 +7,6 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.Finance
/// </summary>
public abstract class WechatWorkFinanceResponse : ICommonResponse
{
internal protected WechatWorkFinanceResponse()
{
_InternalRawBytes = Array.Empty<byte>();
}
[Newtonsoft.Json.JsonIgnore]
[System.Text.Json.Serialization.JsonIgnore]
internal byte[] _InternalRawBytes;
@@ -34,6 +29,11 @@ namespace SKIT.FlurlHttpClient.Wechat.Work.ExtendedSDK.Finance
return _InternalRawBytes;
}
internal protected WechatWorkFinanceResponse()
{
_InternalRawBytes = Array.Empty<byte>();
}
/// <summary>
/// 获取企业微信会话内容存档 API 返回的返回值。
/// </summary>