webservice调用

lihuinihao6315 lihuinihao6315 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好:
 
//webservice
/// <summary>
/// 执行BLL层调用
/// </summary>
/// <param name="ProjectName">项目名称</param>
/// <param name="spaceName">命名空间</param>
/// <param name="className">类名</param>
/// <param name="functionName">方法名</param>
/// <param name="parametersTypeStr">参数类型列表</param>
/// <param name="parametersValue">参数值列表</param>
/// <returns>有返回值:成功返回Object,失败返回string类型错误信息。无返回值:陈功返回 null,失败返回string类型错误信息</returns>
[WebMethod]
public string ExecuteCommand(string ProjectName, string spaceName, string className, object[] classMenth, string functionName, object[] parametersTypeStr, object[] parametersValue)
{
string Message = "0";

object ReturnValue = ReflectionCommand.OperateFuction(ProjectName, spaceName, className, classMenth,functionName, parametersTypeStr, parametersValue, out Message);

Message = Message == "0" ?ReturnValue==null?"": JsonHelper.GetJson<object>(ReturnValue) : Message;

return Message;
}

下面是 反射

/// <summary>
/// 执行指定类的方法
/// </summary>
/// <param name="ProjectName">类所在项目名称 </param>
/// <param name="spaceName">类所在命名空间</param>
/// <param name="className">类名</param>
/// <param name="classMenth">构造参数列表</param>
/// <param name="functionName">要执行的方法名</param>
/// <param name="parametersType">执行方法的参数类型</param>
/// <param name="parametersValue">执行方法的参数集合</param>
/// <param name="Message">错误信息:0成功,err:存在此字符表示出错</param>
/// <returns>object</returns>
public static object OperateFuction(string ProjectName, string spaceName,
string className, object[] classMenth, string functionName,
object[] parametersTypeStr, object[] parametersValue,
out string Message)
{

object returnObj = null;
Message = "0"; //默认成功

System.Type type = GetClassType(ProjectName, spaceName, className);

if (type != null)
{
Object obj;
if (classMenth.Length > 0 && classMenth[0] != null)
{
obj = Activator.CreateInstance(type, classMenth);//得到类对象
}
else
{
obj = Activator.CreateInstance(type);//得到类对象
}

System.Type[] parametersType = new Type[parametersTypeStr.Length];// 定义参数类型
int i = 0;
foreach (string str in parametersTypeStr)
{
System.Type parameterType = Type.GetType(str);

parametersType[i] = parameterType;
i++;
}
System.Reflection.MethodInfo method;
if (parametersTypeStr[0].ToString() == "")
{
method = type.GetMethod(functionName); //类中查找方法
}
else
{
method = type.GetMethod(functionName, parametersType); //类中查找方法
}
if (method != null)
{
try
{
returnObj = method.Invoke(obj, parametersValue);//问题:请问我想在这里使用 out输出参数请问怎么用。问题2 parametersValue集合中有一项 是list<实体>请问我 在webservice里怎么写怎么传过来,传过来后怎么使用 }
catch (System.Exception e)
{
Message = "err:" + e.Message;
}
}
}
return returnObj;
}

请大家帮忙解答。谢谢,给分不吝啬。请同行救急。
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
lihuinihao6315
.NET社区 62,272 成员 668,968 内容