How can I invoke a method with an out parameter?

后端 未结 2 1701
傲寒
傲寒 2020-12-04 23:39

I want expose WebClient.DownloadDataInternal method like below:

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


        
2条回答
  •  孤街浪徒
    2020-12-05 00:20

    public class MyWebClient : WebClient
    {
        delegate byte[] DownloadDataInternal(Uri address, out WebRequest request);
    
        DownloadDataInternal downloadDataInternal;
    
        public MyWebClient()
        {
            downloadDataInternal = (DownloadDataInternal)Delegate.CreateDelegate(
                typeof(DownloadDataInternal),
                this,
                typeof(WebClient).GetMethod(
                    "DownloadDataInternal",
                    BindingFlags.NonPublic | BindingFlags.Instance));
        }
    
        public byte[] DownloadDataInternal(Uri address, out WebRequest request)
        {
            return downloadDataInternal(address, out request);
        }
    }
    

提交回复
热议问题