mirror of
https://gitee.com/fudiwei/DotNetCore.SKIT.FlurlHttpClient.Wechat.git
synced 2025-12-29 09:54:44 +08:00
refactor(tenpayv3): 优化反射性能
This commit is contained in:
@@ -69,8 +69,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
if (objType.IsArray)
|
if (objType.IsArray)
|
||||||
{
|
{
|
||||||
var array = (obj as Array)!;
|
var array = (obj as Array)!;
|
||||||
if (array.IsReadOnly)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (int i = 0, len = array.Length; i < len; i++)
|
for (int i = 0, len = array.Length; i < len; i++)
|
||||||
{
|
{
|
||||||
@@ -88,7 +86,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
|
|
||||||
var oldValue = (string)element!;
|
var oldValue = (string)element!;
|
||||||
var resHandler = replacement(obj!, currentProp, oldValue);
|
var resHandler = replacement(obj!, currentProp, oldValue);
|
||||||
if (resHandler.Modified)
|
if (resHandler.Modified && !array.IsReadOnly)
|
||||||
{
|
{
|
||||||
array.SetValue(resHandler.NewValue, i);
|
array.SetValue(resHandler.NewValue, i);
|
||||||
}
|
}
|
||||||
@@ -96,7 +94,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
else if (elementType.IsClass)
|
else if (elementType.IsClass)
|
||||||
{
|
{
|
||||||
InnerReplacePropertyStringValue(ref element, replacement);
|
InnerReplacePropertyStringValue(ref element, replacement);
|
||||||
array.SetValue(element, i);
|
//if (!array.IsReadOnly)
|
||||||
|
//{
|
||||||
|
// array.SetValue(element, i);
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -107,8 +108,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
else if (obj is IList)
|
else if (obj is IList)
|
||||||
{
|
{
|
||||||
var list = (obj as IList)!;
|
var list = (obj as IList)!;
|
||||||
if (list.IsReadOnly)
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (int i = 0, len = list.Count; i < len; i++)
|
for (int i = 0, len = list.Count; i < len; i++)
|
||||||
{
|
{
|
||||||
@@ -126,7 +125,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
|
|
||||||
var oldValue = (string)element!;
|
var oldValue = (string)element!;
|
||||||
var resHandler = replacement(obj, currentProp, oldValue);
|
var resHandler = replacement(obj, currentProp, oldValue);
|
||||||
if (resHandler.Modified)
|
if (resHandler.Modified && !list.IsReadOnly)
|
||||||
{
|
{
|
||||||
list[i] = resHandler.NewValue;
|
list[i] = resHandler.NewValue;
|
||||||
}
|
}
|
||||||
@@ -134,7 +133,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
else if (elementType.IsClass)
|
else if (elementType.IsClass)
|
||||||
{
|
{
|
||||||
InnerReplacePropertyStringValue(ref element, replacement);
|
InnerReplacePropertyStringValue(ref element, replacement);
|
||||||
list[i] = element;
|
//if (!list.IsReadOnly)
|
||||||
|
//{
|
||||||
|
// list[i] = element;
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -145,8 +147,6 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
else if (obj is IDictionary)
|
else if (obj is IDictionary)
|
||||||
{
|
{
|
||||||
var dict = (obj as IDictionary)!;
|
var dict = (obj as IDictionary)!;
|
||||||
if (dict.IsReadOnly)
|
|
||||||
return;
|
|
||||||
|
|
||||||
foreach (DictionaryEntry entry in dict)
|
foreach (DictionaryEntry entry in dict)
|
||||||
{
|
{
|
||||||
@@ -164,7 +164,7 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
|
|
||||||
string oldValue = (string)entryValue!;
|
string oldValue = (string)entryValue!;
|
||||||
var resHandler = replacement(obj, currentProp, oldValue);
|
var resHandler = replacement(obj, currentProp, oldValue);
|
||||||
if (resHandler.Modified)
|
if (resHandler.Modified && !dict.IsReadOnly)
|
||||||
{
|
{
|
||||||
dict[entry.Key] = resHandler.NewValue;
|
dict[entry.Key] = resHandler.NewValue;
|
||||||
}
|
}
|
||||||
@@ -172,7 +172,10 @@ namespace SKIT.FlurlHttpClient.Wechat.TenpayV3.Utilities
|
|||||||
else if (entryValueType.IsClass)
|
else if (entryValueType.IsClass)
|
||||||
{
|
{
|
||||||
InnerReplacePropertyStringValue(ref entryValue, replacement);
|
InnerReplacePropertyStringValue(ref entryValue, replacement);
|
||||||
dict[entry.Key] = entryValue;
|
if (!dict.IsReadOnly)
|
||||||
|
{
|
||||||
|
dict[entry.Key] = entryValue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user