Здравствуйте, Gollum, Вы писали:
Д>>Вот с этого места поподробнее... Каким образом postCollection связана с реквестом?
G>Хм. А можно узнать, по-вашему с чем оно связано?
Вот я и пытаюсь выяснить... Вы породили во мне сомнения , а msdn как-то не вдается в подробности. Мне, например, непонятно, как данные попадают в postCollection.
Здравствуйте, демиург, Вы писали:
Д>Вот я и пытаюсь выяснить... Вы породили во мне сомнения , а msdn как-то не вдается в подробности.
Как же не вдается Там есть ссылка — For more information see Processing Postback Data.
Переходим по ссылке и видим
Upon postback, the page framework searches the posted content for values that match the UniqueIDs of server controls that implement IPostBackDataHandler. It then sequentially invokes LoadPostData on each control that implements this interface. The two arguments of LoadPostData are: a key that identifies the control and a collection, NameValueCollection, that contains the posted data. LoadPostData is typically implemented to update the state of a control as a result of the postback.
Д> Мне, например, непонятно, как данные попадают в postCollection.
Где-то в недрах среды ASP.NET. Можно поискать в рефлекторе если охота.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, демиург, Вы писали:
Д>>Вот я и пытаюсь выяснить... Вы породили во мне сомнения , а msdn как-то не вдается в подробности. G>Как же не вдается Там есть ссылка — For more information see Processing Postback Data.
G>Переходим по ссылке и видим
G>
G>Upon postback, the page framework searches the posted content for values that match the UniqueIDs of server controls that implement IPostBackDataHandler. It then sequentially invokes LoadPostData on each control that implements this interface. The two arguments of LoadPostData are: a key that identifies the control and a collection, NameValueCollection, that contains the posted data. LoadPostData is typically implemented to update the state of a control as a result of the postback.
Да видел я это... Это разве ж подробности?
Д>> Мне, например, непонятно, как данные попадают в postCollection. G>Где-то в недрах среды ASP.NET. Можно поискать в рефлекторе если охота.
Здравствуйте, Gollum, Вы писали:
G>Здравствуйте, демиург, Вы писали:
Д>>Да вот и ищу...
G>А зачем?
Хороший вопрос! Из чистого любопытства скорее всего. Я признаю, что ошибся, наверно из-за того, что не вдавался в детали, а теперь хочу быть уверенным. Вот..
Д>Хороший вопрос! Из чистого любопытства скорее всего. Я признаю, что ошибся, наверно из-за того, что не вдавался в детали, а теперь хочу быть уверенным. Вот..
Да ладно, не ошибается тот кто ничего не делает. Ну MSDN обычно доверять можно, если только глазами не наблюдается обратных эффектов. Вот например обратный случай:
Пример из MSDN:
public virtual void RegisterStartupScript(string key, string script)
{
this.RegisterScriptBlock(key, script, ref this._registeredClientStartupScripts);
}
private void RegisterScriptBlock(string key, string script, ref IDictionary scriptBlocks)
{
if (scriptBlocks == null)
{
scriptBlocks = new HybridDictionary();
}
if (!scriptBlocks.Contains(key))
{
scriptBlocks.Add(key, script);
}
}
т.е. проверка абсолюно лишняя. Но все используют, т.к. в MSDN так написано.
Д>ЗЫ. Пока поиски ни к чему не привели
Ну просто если была бы какая-то интересная причина, я может бы слазил рефлектором. Но в MSDN вроде все написано как работает, поэтому и неинтересно.
And please don't stick Thy servants, Lord, in a Rotissomat.
Здравствуйте, демиург, Вы писали:
Д>Да вот и ищу...
А че там искать? 10 секунд. Ты Analyser в нем не пробовал использовать?
Page передает в хэндлеры свое поле _requestValueCollection.
запролняется эта _requestValueCollection в методе ProcessRequestMain, обращением к методу GetCollectionBasedOnMethod():
if (this._request.HttpVerb == HttpVerb.POST)
{
if (!dontReturnNull && !this._request.HasForm)
{
return null;
}
returnthis._request.Form;
}
if (!dontReturnNull && !this._request.HasQueryString)
{
return null;
}
returnthis._request.QueryString;
Чего, в общем-то, можно было ожидать.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, демиург, Вы писали:
Д>>Да вот и ищу... S>А че там искать? 10 секунд. Ты Analyser в нем не пробовал использовать?
S>Page передает в хэндлеры свое поле _requestValueCollection. S>запролняется эта _requestValueCollection в методе ProcessRequestMain, обращением к методу GetCollectionBasedOnMethod(): S>
Здравствуйте, Gollum, Вы писали:
G>т.е. проверка абсолюно лишняя. Но все используют, т.к. в MSDN так написано.
Забавно, что я тож на это поймался А вообще, лично мной было обнаружено в .net несколько странностей, особенно, при разработке контролов, так что ничего удивительного
Д>>ЗЫ. Пока поиски ни к чему не привели G>Ну просто если была бы какая-то интересная причина, я может бы слазил рефлектором. Но в MSDN вроде все написано как работает, поэтому и неинтересно.
Меня просто в этом случае заинтересовало чего и как, вот и пришлось полазать. много интересного как обычно наковырял для себя...
Спасибо, за потраченное время