mirror of
https://gitee.com/dotnetchina/OpenAuth.Net.git
synced 2025-09-21 02:57:54 +08:00
fix 将参数调整为json序列化字符串
This commit is contained in:
@@ -151,7 +151,7 @@ namespace OpenAuth.App
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 将对象转换为字典
|
// 将对象转换为字典
|
||||||
var dict = req.Obj.ToDictionary();
|
var dict = JsonHelper.Instance.Deserialize<Dictionary<string, string>>(req.Obj);
|
||||||
|
|
||||||
// 设置ID
|
// 设置ID
|
||||||
if (!dict.ContainsKey("Id"))
|
if (!dict.ContainsKey("Id"))
|
||||||
@@ -180,7 +180,7 @@ namespace OpenAuth.App
|
|||||||
//如果有CreateTime字段,自动设置
|
//如果有CreateTime字段,自动设置
|
||||||
if (dict.ContainsKey("CreateTime"))
|
if (dict.ContainsKey("CreateTime"))
|
||||||
{
|
{
|
||||||
dict["CreateTime"] = DateTime.Now;
|
dict["CreateTime"] = DateTime.Now.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加数据
|
// 添加数据
|
||||||
@@ -219,7 +219,7 @@ namespace OpenAuth.App
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 将对象转换为字典
|
// 将对象转换为字典
|
||||||
var dict = req.Obj.ToDictionary();
|
var dict = JsonHelper.Instance.Deserialize<Dictionary<string, string>>(req.Obj);
|
||||||
|
|
||||||
// 检查ID是否存在
|
// 检查ID是否存在
|
||||||
if (!dict.ContainsKey("Id"))
|
if (!dict.ContainsKey("Id"))
|
||||||
@@ -232,7 +232,7 @@ namespace OpenAuth.App
|
|||||||
// 如果有UpdateTime字段,自动设置
|
// 如果有UpdateTime字段,自动设置
|
||||||
if (dict.ContainsKey("UpdateTime"))
|
if (dict.ContainsKey("UpdateTime"))
|
||||||
{
|
{
|
||||||
dict["UpdateTime"] = DateTime.Now;
|
dict["UpdateTime"] = DateTime.Now.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果有用户信息,设置更新用户
|
// 如果有用户信息,设置更新用户
|
||||||
@@ -372,7 +372,7 @@ namespace OpenAuth.App
|
|||||||
|
|
||||||
// 调用方法
|
// 调用方法
|
||||||
// 将对象转换为字典
|
// 将对象转换为字典
|
||||||
var dict = req.Parameters.ToDictionary();
|
var dict = JsonHelper.Instance.Deserialize<Dictionary<string, string>>(req.Parameters);
|
||||||
|
|
||||||
// 获取方法参数信息
|
// 获取方法参数信息
|
||||||
var parameters = method.GetParameters();
|
var parameters = method.GetParameters();
|
||||||
@@ -401,40 +401,5 @@ namespace OpenAuth.App
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 对象扩展方法
|
|
||||||
/// </summary>
|
|
||||||
public static class ObjectExtensions
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// 将对象转换为字典
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="obj">对象</param>
|
|
||||||
/// <returns></returns>
|
|
||||||
public static Dictionary<string, object> ToDictionary(this object obj)
|
|
||||||
{
|
|
||||||
var dict = new Dictionary<string, object>();
|
|
||||||
|
|
||||||
if (obj == null) return dict;
|
|
||||||
|
|
||||||
// 如果已经是字典类型,直接返回
|
|
||||||
if (obj is Dictionary<string, object> dictionary)
|
|
||||||
{
|
|
||||||
return dictionary;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 获取所有属性
|
|
||||||
foreach (var prop in obj.GetType().GetProperties())
|
|
||||||
{
|
|
||||||
var value = prop.GetValue(obj);
|
|
||||||
if (value != null)
|
|
||||||
{
|
|
||||||
dict[prop.Name] = value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return dict;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
@@ -4,6 +4,6 @@ namespace OpenAuth.App.Request
|
|||||||
{
|
{
|
||||||
public string TableName { get; set; }
|
public string TableName { get; set; }
|
||||||
|
|
||||||
public object Obj { get; set; }
|
public string Obj { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -16,6 +16,6 @@ namespace OpenAuth.App.Request
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 参数,如:{ "Id": 1, "Name": "test" }
|
/// 参数,如:{ "Id": 1, "Name": "test" }
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public object Parameters { get; set; }
|
public string Parameters { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -48,50 +48,42 @@ namespace OpenAuth.App.Test
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public async Task TestAdd()
|
public void TestInvoke()
|
||||||
{
|
|
||||||
var app = _autofacServiceProvider.GetService<DynamicApiApp>();
|
|
||||||
|
|
||||||
var obj = await app.Add(new AddOrUpdateDynamicEntityReq { TableName = "noentity", Obj = new { Id = "10", P1 = DateTime.Now.ToString() } });
|
|
||||||
Console.WriteLine(JsonHelper.Instance.Serialize(obj));
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public async Task TestUpdate()
|
|
||||||
{
|
|
||||||
var app = _autofacServiceProvider.GetService<DynamicApiApp>();
|
|
||||||
|
|
||||||
var obj = await app.Update(new AddOrUpdateDynamicEntityReq { TableName = "noentity", Obj = new { Id = "1", P1 = DateTime.Now.ToString() } });
|
|
||||||
Console.WriteLine(JsonHelper.Instance.Serialize(obj));
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public async Task TestDelete()
|
|
||||||
{
|
|
||||||
var app = _autofacServiceProvider.GetService<DynamicApiApp>();
|
|
||||||
|
|
||||||
var obj = await app.Delete(new DelDynamicReq() { TableName = "noentity", Ids = new string[] { "10" } });
|
|
||||||
Console.WriteLine(JsonHelper.Instance.Serialize(obj));
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void TestInvoke()
|
|
||||||
{
|
{
|
||||||
var app = _autofacServiceProvider.GetService<DynamicApiApp>();
|
var app = _autofacServiceProvider.GetService<DynamicApiApp>();
|
||||||
|
|
||||||
var obj = app.Invoke(new InvokeDynamicReq { ServiceName = "UserManagerApp", MethodName = "GetParent",
|
var obj = app.Invoke(new InvokeDynamicReq { ServiceName = "UserManagerApp", MethodName = "GetParent",
|
||||||
Parameters = new { userid = "0ceff0f8-f848-440c-bc26-d8605ac858cd" } });
|
Parameters = "{\"userid\":\"0ceff0f8-f848-440c-bc26-d8605ac858cd\"}" });
|
||||||
Console.WriteLine(JsonHelper.Instance.Serialize(obj));
|
Console.WriteLine(JsonHelper.Instance.Serialize(obj));
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
[Test]
|
||||||
public void TestInvoke2()
|
public async Task TestInvoke2()
|
||||||
{
|
{
|
||||||
var app = _autofacServiceProvider.GetService<DynamicApiApp>();
|
var app = _autofacServiceProvider.GetService<DynamicApiApp>();
|
||||||
|
|
||||||
var obj = app.Invoke(new InvokeDynamicReq { ServiceName = "UserManagerApp", MethodName = "Load",
|
var obj = app.Invoke(new InvokeDynamicReq {
|
||||||
Parameters = new { page = 1, limit = 10, key = "" } });
|
ServiceName = "UserManagerApp",
|
||||||
Console.WriteLine(JsonHelper.Instance.Serialize(obj));
|
MethodName = "Load",
|
||||||
}
|
Parameters = "{\"request\":{\"page\":1,\"limit\":10,\"key\":\"\"}}"
|
||||||
|
});
|
||||||
|
|
||||||
|
// 如果返回的是Task,需要等待它完成并获取结果
|
||||||
|
if (obj is Task task)
|
||||||
|
{
|
||||||
|
await task;
|
||||||
|
// 使用反射获取Task的Result属性
|
||||||
|
var resultProperty = task.GetType().GetProperty("Result");
|
||||||
|
if (resultProperty != null)
|
||||||
|
{
|
||||||
|
var result = resultProperty.GetValue(task);
|
||||||
|
Console.WriteLine(JsonHelper.Instance.Serialize(result));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine(JsonHelper.Instance.Serialize(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user