powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ParseQueryString
5 сообщений из 5, страница 1 из 1
ParseQueryString
    #33908027
_FRED_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ли метод, "обратный" HttpUtility.ParseQueryString(string, …)? То есть формирующий по NameValueCollection строку запроса к странице?

Пока нашёл приватную реализацию в System.Web.HttpValueCollection.ToString(…) и скопировал себе её :xz: .
Может быть, где-то описаны константы для раздилителей '?', '&', '='?

Задача сама по себе такая: формировать строку параметров не работой со строками, форматами и кодированием, а как-то ещё :) Пока представляю как заполнение NameValueCollection. Может есть другие варианты?
...
Рейтинг: 0 / 0
ParseQueryString
    #33909021
mogadanez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, _FRED_, Вы писали:

_FR>Есть ли метод, "обратный" HttpUtility.ParseQueryString(string, …)? То есть формирующий по NameValueCollection строку запроса к странице?
_FR>Пока нашёл приватную реализацию в System.Web.HttpValueCollection.ToString(…) и скопировал себе её :xz: .

не понял...


public override string ToString()
{
      return this.ToString(true);
}

internal virtual string ToString(bool urlencoded)
{
      return this.ToString(urlencoded, null);
}

internal virtual string ToString(bool urlencoded, IDictionary excludeKeys)
{
...  
}
или тебе надо именно с доп параметрами вызывать?


_FR>Может быть, где-то описаны константы для раздилителей '?', '&', '='?
в стандарте — изменятся они вряд ли :) , в константах не видел.

_FR>Задача сама по себе такая: формировать строку параметров не работой со строками, форматами и кодированием, а как-то ещё :) Пока представляю как заполнение NameValueCollection. Может есть другие варианты?
нормальный способ.... << RSDN@Home 1.1.4 beta 6a rev. 436>>
...
Рейтинг: 0 / 0
ParseQueryString
    #33909208
_FRED_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, mogadanez, Вы писали:

_FR>>Есть ли метод, "обратный" HttpUtility.ParseQueryString(string, …)? То есть формирующий по NameValueCollection строку запроса к странице?
_FR>>Пока нашёл приватную реализацию в System.Web.HttpValueCollection.ToString(…) и скопировал себе её :xz: .

M>не понял...


M>internal virtual string ToString(bool urlencoded, IDictionary excludeKeys)
M>{
M>...  
M>}
M>или тебе надо именно с доп параметрами вызывать?

Класс System.Web.HttpValueCollection объявлен как internal, поэтому сейчас выдрал из него реализацию этого вот метода и преобразую через него.
...
Рейтинг: 0 / 0
ParseQueryString
    #33909257
mogadanez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, _FRED_, Вы писали:


_FR>Класс System.Web.HttpValueCollection объявлен как internal, поэтому сейчас выдрал из него реализацию этого вот метода и преобразую через него.

кого это останавливает?


//1. создаем не явно
NameValueCollection nvc = HttpUtility.ParseQueryString( "" ) ; вернет нам  HttpValueCollection
nvc.Add ( "a", "a" );
nvc.Add ( "b", "b" );
string query = nvc.ToString();
Assert( query == "a=a&b=b" );
nvc.Clear();
nvc.Add ( "c", "c" );
query = nvc.ToString();
Assert( query == "c=c" );

//2. явно но через Reflection
 NameValueCollection nvc = (NameValueCollection)untyped_object.create( typeof(Page).Assembly, "System.Web.HttpValueCollection"  );... << RSDN@Home 1.1.4 beta 6a rev. 436>>
...
Рейтинг: 0 / 0
ParseQueryString
    #33909286
_FRED_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, mogadanez, Вы писали:

_FR>>Класс System.Web.HttpValueCollection объявлен как internal, поэтому сейчас выдрал из него реализацию этого вот метода и преобразую через него.
M>кого это останавливает?

M>//1. создаем не явно
M>NameValueCollection nvc = HttpUtility.ParseQueryString( "" ) ; вернет нам  HttpValueCollection
Прикольно :up: Не догадался…


M>//2. явно но через Reflection
M> NameValueCollection nvc = (NameValueCollection)untyped_object.create( typeof(Page).Assembly, "System.Web.HttpValueCollection"  );
Не уж, не люблю я колдовство :))

Своё решение разместил здесь
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / ParseQueryString
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]