C#反射签名中带Out参数的函数

C#反射签名中带Out参数的函数,第1张

TypeGetMethod可以得到一个MethodInfo对象,MethodInfo对象有一个方法是GetParameters即得到ParameterInfo数组,ParameterInfo对象有一个属性是IsOut。

已知foo的函数原型么?如果已知的话可以用GetMethod(string, Type[])这个重载。

比如你提到的有这样一个类:

class a

{

public void foo(string value);

public void foo(out string value);

}

如果想获得上面那一个方法,用这个语句:

1

typeGetMethod("foo", new Type[] { typeof(string) });

如果想获得下面那一个方法,用这个语句:

1

typeGetMethod("foo", new Type[] { typeof(string)MakeByRefType() });

1 class Program

2 {

3 static void Main(string[] args)

4 {

5

string content = "main"; //#1 variable

6 MethodInfo testMethod = typeof(Program)GetMethod("TestMethod",

7 BindingFlagsStatic | BindingFlagsNonPublic);

8 if (testMethod != null)

9 {

10 // Following way can not take content back

11 //

12 testMethodInvoke(null, new object[] { content / #1 variable / });

13 ConsoleWriteLine(content); // #1 variable, Output is: main

14 //

15

16

17 object[] invokeArgs = new object[] { content / #1 variable / };

18 testMethodInvoke(null, invokeArgs);

19 content = (string)invokeArgs[0]; // #2 variable, bypass from invoke, set to content

20 ConsoleWriteLine(content); // #2 variable, Output is: test

21 }

22 }

23

24 static void TestMethod(ref string arg)

25 {

26 arg = "test"; // #2 variable, wanna bypass to main process

27 }

28 }

PROCEDURE xxx is

l_in varchar2;

l_out varchar2;

begin

--开始调用带输出参数的存储过程

yyy(l_in,l_out);

--此时可以使用l_out了

FND_FILEPUT_LINE(l_out);

end;

SQL Server存储过程中通过使用OUT参数,Java程序可以通过CallableStatement对象的registerOutParameter()方法为OUT参数指定一个答复变量,再通过getXXXXX()系列方法获得返回结果。

以上就是关于C#反射签名中带Out参数的函数全部的内容,包括:C#反射签名中带Out参数的函数、EBS个性化客制中调用带out参数的存储过程如何获取返回值、sqlserver存储过程out返回java怎么接收等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10096232.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存