Возможно, что вы хотите, чтобы поле только для записи.Используйте отражатель, чтобы посмотреть на источник, чтобы увидеть, что происходит.Если это только запись, вам нужно будет получить доступ к закрытому полю.
Также: он передает ссылку, используя m.GetValue (c), поскольку c является экземпляром отправителя, приведенного к Webclient.
Кстати: убедитесь, что WebClient не равен нулю.
- Правка. После публикации моего ответа я понимаю, что вы пытаетесь получить доступ к свойству типа, экземпляр которого не создан.Doh!Есть ли у Webclient свойство с экземпляром DownloadBitsState?Используйте это, ТО затем потяните свойство
- Редактировать: Глядя на код, единственный метод в веб-клиенте, который создает экземпляр DownloadBitsState, является private byte[] DownloadBits()
private byte[] DownloadBits(WebRequest request, Stream writeStream, CompletionDelegate completionDelegate, AsyncOperation asyncOp)
{
WebResponse response = null;
DownloadBitsState state = new DownloadBitsState(request, writeStream, completionDelegate, asyncOp, this.m_Progress, this);
if (state.Async)
{
request.BeginGetResponse(new AsyncCallback(WebClient.DownloadBitsResponseCallback), state);
return null;
}
response = this.m_WebResponse = this.GetWebResponse(request);
int bytesRetrieved = state.SetResponse(response);
while (!state.RetrieveBytes(ref bytesRetrieved))
{
}
state.Close();
return state.InnerBuffer;
}
Итак, вы не можетеделай что хочешь так, как хочешь.