From c590b7b2d4aa7b30d7639bf5e75635400c1d7251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 19 Sep 2017 17:22:37 +0300 Subject: [PATCH] Use simplified type name for api descriptions. --- .../DynamicProxying/ApiDescriptionFinder.cs | 2 +- .../Http/Modeling/ActionApiDescriptionModel.cs | 2 +- .../Modeling/ControllerApiDescriptionModel.cs | 6 +++--- .../ControllerInterfaceApiDescriptionModel.cs | 2 +- .../MethodParameterApiDescriptionModel.cs | 2 +- .../Modeling/ParameterApiDescriptionModel.cs | 2 +- .../Modeling/ReturnValueApiDescriptionModel.cs | 16 +++++++++++----- .../JQuery/JQueryProxyScriptGenerator.cs | 2 +- src/Volo.Abp/System/AbpTypeExtensions.cs | 10 ++++++++++ 9 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 src/Volo.Abp/System/AbpTypeExtensions.cs diff --git a/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs b/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs index a4a300dc1c..b58e43e1ec 100644 --- a/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs +++ b/src/Volo.Abp.Http.Client/Volo/Abp/Http/Client/DynamicProxying/ApiDescriptionFinder.cs @@ -41,7 +41,7 @@ namespace Volo.Abp.Http.Client.DynamicProxying for (int i = 0; i < methodParameters.Length; i++) { - if (action.ParametersOnMethod[i].TypeAsString != methodParameters[i].ParameterType.FullName) + if (action.ParametersOnMethod[i].TypeAsString != methodParameters[i].ParameterType.GetFullNameWithAssemblyName()) { found = false; break; diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs index af17aae7f1..fe91a3ddf2 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ActionApiDescriptionModel.cs @@ -36,7 +36,7 @@ namespace Volo.Abp.Http.Modeling NameOnClass = method.Name, Url = url, HttpMethod = httpMethod, - ReturnValue = new ReturnValueApiDescriptionModel(method.ReturnType), + ReturnValue = ReturnValueApiDescriptionModel.Create(method.ReturnType), Parameters = new List(), ParametersOnMethod = method .GetParameters() diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs index ff1a2301ea..51f03661f4 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerApiDescriptionModel.cs @@ -13,7 +13,7 @@ namespace Volo.Abp.Http.Modeling public List Interfaces { get; set; } - public Dictionary Actions { get; set; } + public Dictionary Actions { get; set; } private ControllerApiDescriptionModel() { @@ -25,7 +25,7 @@ namespace Volo.Abp.Http.Modeling return new ControllerApiDescriptionModel { ControllerName = controllerName, - TypeAsString = type.FullName, + TypeAsString = type.GetFullNameWithAssemblyName(), Actions = new Dictionary(), Interfaces = type .GetInterfaces() @@ -69,7 +69,7 @@ namespace Volo.Abp.Http.Modeling public bool Implements(Type interfaceType) { - return Interfaces.Any(i => i.TypeAsString == interfaceType.AssemblyQualifiedName); + return Interfaces.Any(i => i.TypeAsString == interfaceType.GetFullNameWithAssemblyName()); } } } \ No newline at end of file diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerInterfaceApiDescriptionModel.cs b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerInterfaceApiDescriptionModel.cs index 78b62d726f..3605cf675b 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerInterfaceApiDescriptionModel.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ControllerInterfaceApiDescriptionModel.cs @@ -16,7 +16,7 @@ namespace Volo.Abp.Http.Modeling { return new ControllerInterfaceApiDescriptionModel { - TypeAsString = type.AssemblyQualifiedName + TypeAsString = type.GetFullNameWithAssemblyName() }; } } diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/MethodParameterApiDescriptionModel.cs b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/MethodParameterApiDescriptionModel.cs index fdc50090d2..61ffc516f6 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/MethodParameterApiDescriptionModel.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/MethodParameterApiDescriptionModel.cs @@ -24,7 +24,7 @@ namespace Volo.Abp.Http.Modeling return new MethodParameterApiDescriptionModel { Name = parameterInfo.Name, - TypeAsString = parameterInfo.ParameterType.FullName, + TypeAsString = parameterInfo.ParameterType.GetFullNameWithAssemblyName(), IsOptional = parameterInfo.IsOptional, DefaultValue = parameterInfo.HasDefaultValue ? parameterInfo.DefaultValue : null }; diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ParameterApiDescriptionModel.cs b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ParameterApiDescriptionModel.cs index 4158282967..609fdd9000 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ParameterApiDescriptionModel.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ParameterApiDescriptionModel.cs @@ -30,7 +30,7 @@ namespace Volo.Abp.Http.Modeling { Name = name, NameOnMethod = nameOnMethod, - TypeAsString = type.FullName, + TypeAsString = type.GetFullNameWithAssemblyName(), IsOptional = isOptional, DefaultValue = defaultValue, ConstraintTypes = constraintTypes, diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ReturnValueApiDescriptionModel.cs b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ReturnValueApiDescriptionModel.cs index 83b4cba346..9dbdd40edb 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ReturnValueApiDescriptionModel.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/Modeling/ReturnValueApiDescriptionModel.cs @@ -5,13 +5,19 @@ namespace Volo.Abp.Http.Modeling [Serializable] public class ReturnValueApiDescriptionModel { - public Type Type { get; } - public string TypeAsString { get; } + public string TypeAsString { get; set; } - public ReturnValueApiDescriptionModel(Type type) + private ReturnValueApiDescriptionModel() { - Type = type; - TypeAsString = type.FullName; + + } + + public static ReturnValueApiDescriptionModel Create(Type type) + { + return new ReturnValueApiDescriptionModel + { + TypeAsString = type.GetFullNameWithAssemblyName() + }; } } } \ No newline at end of file diff --git a/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs b/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs index 157d66ca55..87dbba1bad 100644 --- a/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs +++ b/src/Volo.Abp.Http/Volo/Abp/Http/ProxyScripting/Generators/JQuery/JQueryProxyScriptGenerator.cs @@ -90,7 +90,7 @@ namespace Volo.Abp.Http.ProxyScripting.Generators.JQuery script.AppendLine(" url: abp.appPath + '" + ProxyScriptingHelper.GenerateUrlWithParameters(action) + "',"); script.Append(" type: '" + httpMethod + "'"); - if (action.ReturnValue.Type == typeof(void)) + if (action.ReturnValue.TypeAsString == typeof(void).GetFullNameWithAssemblyName()) { script.AppendLine(","); script.Append(" dataType: null"); diff --git a/src/Volo.Abp/System/AbpTypeExtensions.cs b/src/Volo.Abp/System/AbpTypeExtensions.cs new file mode 100644 index 0000000000..7742998c13 --- /dev/null +++ b/src/Volo.Abp/System/AbpTypeExtensions.cs @@ -0,0 +1,10 @@ +namespace System +{ + public static class AbpTypeExtensions + { + public static string GetFullNameWithAssemblyName(this Type type) + { + return type.FullName + ", " + type.Assembly.GetName().Name; + } + } +}