-
jack128 © (18.06.06 14:44) [0]C# / .NET Framework 2 / VS2005
Имеются в виду интернет протоколы, которые регистрируются через IInternetSession.RegisterNameSpace
Собственно интересно, как подобное делается в .NET ?
Сначала я подумал, что подобная фишка через WebRequest.RegisterPrefix() , но WebBrowser почему то не подхватывает мой протокол:public class TestWebRequestCreate: IWebRequestCreate
{
public WebRequest Create(Uri uri)
{
using (StreamWriter sw = new StreamWriter(@"c:\WebRequestTest.txt")) // при клике на ссылку файл не создается
{
sw.WriteLine("TestWebRequestCreate.Create()");
}
throw new NotImplementedException();
}
}
private const string MyProtocol = "sftp";
public Form1()
{
InitializeComponent();
webBrowser1.DocumentText = @"<html><head></head><body><a href=" +
MyProtocol + "://test.ru>My Webpage</a></body></html>";
IWebRequestCreate creator = new TestWebRequestCreate();
if (WebRequest.RegisterPrefix(MyProtocol, creator))
Text = "true";
else
Text = "false";
}
Что делать? (с) -
Lamer@fools.ua © (18.06.06 23:53) [1]WebRequest.RegisterPrefix действует на сами WebRequest'ы:WebRequest request = WebRequest.Create("sftp://qwerty");
WebResponse response = request.GetResponse(); -
jack128 © (18.06.06 23:59) [2]Lamer@fools.ua © (18.06.06 23:53) [1]
угу, я это уже понял. Но как тогда воздействовать на WebBrowser ? -
Lamer@fools.ua © (19.06.06 00:06) [3]Видимо, всё-таки посредством IInternetSession.RegisterNameSpace.
Я погуглил
http://www.google.com/search?q=IInternetSession+RegisterNameSpace+c%23&hl=uk&hs=kKi&lr=&client=opera&rls=en&start=10&sa=N
кое-какие примеры есть по этому делу. -
Lamer@fools.ua © (19.06.06 00:07) [4]Сорри, вот более правильная ссылка:
http://www.google.com/search?client=opera&rls=en&q=IInternetSession+RegisterNameSpace+c%23&sourceid=opera&ie=utf-8&oe=utf-8 -
Ломброзо © (19.06.06 01:08) [5]
-
jack128 © (19.06.06 01:13) [6]Lamer@fools.ua © (19.06.06 0:07) [4]
может я слепой, но на вскидку по этим ссыкам - СPP и Delphi рулят. Шарпа нет и в помине
А по cути, мен я не интересует как юзать ком в дотнет(разве что ссылки на готовые хедеры шарповские приветствуются, ручками их формировать - то еще удовольствие) гораздо интереснее цельные .NET'овские решения, если они возможны... -
jack128 © (19.06.06 01:14) [7]Ломброзо © (19.06.06 1:08) [5]
Я читал эту статью, но где там .NET ??? -
Ломброзо © (19.06.06 01:19) [8]jack128 © (19.06.06 01:14) [7]
Половина .NET - надстройка над нативными функциями WinAPI, ещё четверть - надстройка над COM.
По-другому зарегистрировать свой протокол - невозможно.
Разве что в пространстве имен System.Xml можно внедрить свой UrlResolver. -
Lamer@fools.ua © (19.06.06 09:13) [9]> разве что ссылки на готовые хедеры шарповские приветствуются,
> ручками их формировать - то еще удовольствие
Тут много всякого разного:
http://pinvoke.net/