Re[8]: несколько вопросов по asp.net
От: Gollum Россия  
Дата: 27.01.06 10:00
Оценка:
Здравствуйте, демиург, Вы писали:

Д>Вот с этого места поподробнее... Каким образом postCollection связана с реквестом?


Хм. А можно узнать, по-вашему с чем оно связано?

Вот тут все написано: IPostBackDataHandler
Даже пример есть.
В мире что-то не так? Или это у меня в голове?
Eugene Agafonov on the .NET

Re[9]: несколько вопросов по asp.net
От: демиург Россия  
Дата: 27.01.06 10:08
Оценка:
Здравствуйте, Gollum, Вы писали:

Д>>Вот с этого места поподробнее... Каким образом postCollection связана с реквестом?


G>Хм. А можно узнать, по-вашему с чем оно связано?


Вот я и пытаюсь выяснить... Вы породили во мне сомнения , а msdn как-то не вдается в подробности. Мне, например, непонятно, как данные попадают в postCollection.
Re[10]: несколько вопросов по asp.net
От: Gollum Россия  
Дата: 27.01.06 10:15
Оценка:
Здравствуйте, демиург, Вы писали:

Д>Вот я и пытаюсь выяснить... Вы породили во мне сомнения , а 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. Можно поискать в рефлекторе если охота.
В мире что-то не так? Или это у меня в голове?
Eugene Agafonov on the .NET

Re[11]: несколько вопросов по asp.net
От: демиург Россия  
Дата: 27.01.06 10:25
Оценка:
Здравствуйте, 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. Можно поискать в рефлекторе если охота.

Да вот и ищу...
Re[12]: несколько вопросов по asp.net
От: Gollum Россия  
Дата: 27.01.06 10:45
Оценка:
Здравствуйте, демиург, Вы писали:

Д>Да вот и ищу...


А зачем?
Кто людям помогает, тот тратит время зря. Хорошими делами прославиться нельзя!
Eugene Agafonov on the .NET

Re[13]: несколько вопросов по asp.net
От: демиург Россия  
Дата: 27.01.06 10:55
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, демиург, Вы писали:


Д>>Да вот и ищу...


G>А зачем?


Хороший вопрос! Из чистого любопытства скорее всего. Я признаю, что ошибся, наверно из-за того, что не вдавался в детали, а теперь хочу быть уверенным. Вот..

ЗЫ. Пока поиски ни к чему не привели
Re[14]: несколько вопросов по asp.net
От: Gollum Россия  
Дата: 27.01.06 11:04
Оценка:
Здравствуйте, демиург, Вы писали:


Д>Хороший вопрос! Из чистого любопытства скорее всего. Я признаю, что ошибся, наверно из-за того, что не вдавался в детали, а теперь хочу быть уверенным. Вот..

Да ладно, не ошибается тот кто ничего не делает. Ну MSDN обычно доверять можно, если только глазами не наблюдается обратных эффектов. Вот например обратный случай:
Пример из MSDN:

if(!this.IsStartupScriptRegistered("Startup"))
         this.RegisterStartupScript("Startup", scriptString);


При этом смотрим рефлектором:

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.
Eugene Agafonov on the .NET

Re[12]: несколько вопросов по asp.net
От: Sinclair Россия https://github.com/evilguest/
Дата: 27.01.06 11:09
Оценка:
Здравствуйте, демиург, Вы писали:

Д>Да вот и ищу...

А че там искать? 10 секунд. Ты Analyser в нем не пробовал использовать?

Page передает в хэндлеры свое поле _requestValueCollection.
запролняется эта _requestValueCollection в методе ProcessRequestMain, обращением к методу GetCollectionBasedOnMethod():
    if (this._request.HttpVerb == HttpVerb.POST)
      {
            if (!dontReturnNull && !this._request.HasForm)
            {
                  return null;
            }
            return this._request.Form;
      }
      if (!dontReturnNull && !this._request.HasQueryString)
      {
            return null;
      }
      return this._request.QueryString;

Чего, в общем-то, можно было ожидать.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: несколько вопросов по asp.net
От: демиург Россия  
Дата: 27.01.06 13:57
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, демиург, Вы писали:


Д>>Да вот и ищу...

S>А че там искать? 10 секунд. Ты Analyser в нем не пробовал использовать?

S>Page передает в хэндлеры свое поле _requestValueCollection.

S>запролняется эта _requestValueCollection в методе ProcessRequestMain, обращением к методу GetCollectionBasedOnMethod():
S>
S>    if (this._request.HttpVerb == HttpVerb.POST)
S>      {
S>            if (!dontReturnNull && !this._request.HasForm)
S>            {
S>                  return null;
S>            }
S>            return this._request.Form;
S>      }
S>      if (!dontReturnNull && !this._request.HasQueryString)
S>      {
S>            return null;
S>      }
S>      return this._request.QueryString;
S>

S>Чего, в общем-то, можно было ожидать.

Пасиба, развеяли вы мои сомнения!
Re[15]: несколько вопросов по asp.net
От: демиург Россия  
Дата: 27.01.06 14:03
Оценка:
Здравствуйте, Gollum, Вы писали:

G>т.е. проверка абсолюно лишняя. Но все используют, т.к. в MSDN так написано.


Забавно, что я тож на это поймался А вообще, лично мной было обнаружено в .net несколько странностей, особенно, при разработке контролов, так что ничего удивительного

Д>>ЗЫ. Пока поиски ни к чему не привели

G>Ну просто если была бы какая-то интересная причина, я может бы слазил рефлектором. Но в MSDN вроде все написано как работает, поэтому и неинтересно.

Меня просто в этом случае заинтересовало чего и как, вот и пришлось полазать. много интересного как обычно наковырял для себя...
Спасибо, за потраченное время
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.