c# - 如何调用带有 out 参数的方法?

标签 c# reflection out-parameters

我想公开 WebClient.DownloadDataInternal 方法,如下所示:

[ComVisible(true)]
public class MyWebClient : WebClient
{
    private MethodInfo _DownloadDataInternal;

    public MyWebClient()
    {
        _DownloadDataInternal = typeof(WebClient).GetMethod("DownloadDataInternal", BindingFlags.NonPublic | BindingFlags.Instance);
    }

    public byte[] DownloadDataInternal(Uri address, out WebRequest request)
    {
        _DownloadDataInternal.Invoke(this, new object[] { address, out request });
    }

}

WebClient.DownloadDataInternal 有一个 out 参数,我不知道如何调用它。 帮助!

最佳答案

就像任何其他方法一样,您可以通过反射调用带有 out 参数的方法。不同之处在于返回值将被复制回参数数组,因此您可以从调用函数访问它。

object[] args = new object[] { address, request };
_DownloadDataInternal.Invoke(this, args);
request = (WebRequest)args[1];

关于c# - 如何调用带有 out 参数的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2438065/

相关文章:

c# - asp.net ef 7 在 IDENTITY_INSERT 设置为 OFF 时插入问题

objective-c - 为什么 Apple header 没有 NSError** 参数的 __autoreleasing?

c# - 获取 LINQ 的 Any() 方法的 MethodInfo?

c# - 使用反射的 Unity 寄存器类型

c# - 为什么在面向 .NET Standard 的项目中可以不分配 Out 参数?

sql - 如何在 vb.net 代码中使用 SQL Server 存储过程中的 OUT 参数

c# - 密封类和单例

c# - 没有 Action 的 ASP MVC 路由

c# - 如何重置 Selenium 鼠标光标位置?

java - 使用反射和泛型时发出警告