Конференция ".Net" » Подключаемые протоколы в .NET
 
  • 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]
  • Ломброзо © (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/
 
Конференция ".Net" » Подключаемые протоколы в .NET
Есть новые Нет новых   [134430   +2][b:0][p:0.002]