C# 如何通过服务引用发布Reflection.MethodBase
我正在使用带有Lucene引擎的后端(.Net C#)创建一个日志系统,并记录每个方法请求 为此,我在后端创建了一个服务引用,其中一个WebService方法参数是Reflection.MethodBase 在前端,我添加了引用(该.Net创建了一个Soap客户端连接器)。 但是,该方法不需要Reflection.MethodBase,它需要另一个MethodBase类(TestLogger.RefLogger.MethodBase) 我认为.Net为每个非原语的方法参数创建了一个克隆类 问题是,我无法将Reflection.MethodBase转换为MyLooger.MethodBase,例如:C# 如何通过服务引用发布Reflection.MethodBase,c#,asp.net,web-services,reflection,C#,Asp.net,Web Services,Reflection,我正在使用带有Lucene引擎的后端(.Net C#)创建一个日志系统,并记录每个方法请求 为此,我在后端创建了一个服务引用,其中一个WebService方法参数是Reflection.MethodBase 在前端,我添加了引用(该.Net创建了一个Soap客户端连接器)。 但是,该方法不需要Reflection.MethodBase,它需要另一个MethodBase类(TestLogger.RefLogger.MethodBase) 我认为.Net为每个非原语的方法参数创建了一个克隆类 问题是
public static void addLog(MethodBase methodBase, object[] parameters, TestLogger.RefLogger.TipoLog tipoLog)
{
TestLogger.RefLogger.WSLoggerSoapClient client = new TestLogger.RefLogger.WSLoggerSoapClient();
client.AddLogNormal(MethodBase.GetCurrentMethod(), parameters, tipoLog);
}
在这里,它向我表明,即使我尝试强制转换,它也无法转换类型:
(TestLogger.RefLogger.MethodBase)MethodBase.GetCurrentMethod()
因此,我尝试创建一个方法来“转换”对象,创建一个新的MyLogger.MethodBase并复制值,但它没有构造函数
TestLogger.RefLogger.MethodBase mDest = new TestLogger.RefLogger.MethodBase();//CANNOT DO THIS
有什么想法吗?
提前感谢。如果您只需要记录此方法的信息,您可以使用MethodBase.GetParameters在前端检索此信息:
String methodName
String[] parametersNames
String[] parametersValues
要创建methodName,可以使用methodBase.DeclaringType.Namespace+“+methodBase.DeclaringType.Name+”+methodBase.Name
要创建参数名称,请使用MethodBase.GetParameters:
然后可以将此参数传递到后端
web服务将识别这种类型。这是我找到的唯一解决方案。给你加油。