Модераторы: gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> конфиг файлы, как правильно сделать? 
:(
    Опции темы
Alexsar
Дата 18.11.2006, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



вот есть проблема
написал прогу, но с жёстко заданным протоколом и номером порта, есть желание сделать конфиг файл в котором буду настраивать сам ремотинг
но когда пользую конфиг файл (объект активизируется сервером), складывается такое ощущение, что объект с клиентской активизацией!! хотя в коде конфига чётко написано <wellknown
type ="RemOb.Messager, Messager" url ="tcp://Ale:4000/Messager"/>
т.е. при срабатывании события другие клиенты "не видят" этого, более того члены удалённого объекта ведут себя как при клиентской активизацией
что не так может я что то пропустил?
вот коды (сокращённые)

сервак
Код

...
ListDictionary channelProperties = new ListDictionary();
            channelProperties.Add("port", 4000);
            BinaryServerFormatterSinkProvider serverSinkProvider = new BinaryServerFormatterSinkProvider();

             serverSinkProvider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;

            TcpChannel channel = new TcpChannel(channelProperties, null, serverSinkProvider);
            ChannelServices.RegisterChannel(channel);

            RemotingConfiguration.RegisterWellKnownServiceType(typeof(Messager), "Messager",
            WellKnownObjectMode.Singleton);

            Messager msg = new Messager();
            ObjRef obj = RemotingServices.Marshal(msg, "TcpService");
            Console.WriteLine("Input Enter to exit..");
            Console.ReadLine();
....


клиент

Код

.....
 Hashtable props = new Hashtable();
            props.Add("port", 0);
            BinaryServerFormatterSinkProvider serverSinkProvider = new BinaryServerFormatterSinkProvider();

            serverSinkProvider.TypeFilterLevel = System.Runtime.Serialization.Formatters.TypeFilterLevel.Full;


            TcpChannel channel = new TcpChannel(props, null, serverSinkProvider);
            channel.StartListening(0);
            ChannelServices.RegisterChannel(channel);

            RemotingConfiguration.RegisterWellKnownClientType(typeof(Messager), "tcp://localhost:4000/Messager");
......


и конфиг для клиента

Код

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.runtime.remoting>
        <application name ="Speaker">
            <client>
                <wellknown
                    type ="RemOb.Messager, Messager"
                    url ="tcp://localhost:4000/Messager"/>
                <lifetime leaseTime="0" renewOnCallTime="0" />
            </client>
            <channels>
                <channels ref="tcp" port="0"/>
            </channels>
        </application>
    </system.runtime.remoting>
</configuration>


для сервера не привожу конфиг

и как надо правильно написать и использовать конфиг, чтоб результаты были идентичны результатам работы проги без конфигов smile 
PM MAIL   Вверх
mr.DUDA
Дата 18.11.2006, 12:40 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Снова события + ремоутинг. Сколько раз нужно повторить, что в архитектуре взаимодействия "клиент-сервер" сервер не может отправлять сообщения клиенту, в терминах ремоутинга - сервер не может самостоятельно вызывать методы клиента ! События в .NET - лишь удобная надстройка над вызовом методов по ссылке. Поэтому ожидать что сервер сгенерирует событие, а все подписанные на событие клиенты обработают его - бесполезно.


--------------------
user posted image
PM MAIL WWW   Вверх
Alexsar
Дата 25.11.2006, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



TO mr.DUDA 
вопрос с событиями я уже решил, я запостил про это в той же теме smile , здесь вопрос в другом как правильно настроить конфиг файл?
скажем я написал простое приложение, пусть удалённый объект содержит переменную(пусть равную 5) и свойство для задания и получения данной переменной
активизация серверная, допустим клиент сначала запрашивает эту переменную через свойсво, а затем меняет её на другое(т.е. было скажем 5 стало 34), после эта прога ничего не меняет, запускаем вторую
второй клиент при запуске делает тоже самое, т.е. зарпашивает и меняет
весь трабл заключается в следущем: если производить настройку ремотинга программно, то результат будет следущим
первая прога выведет на консоль сначала 5 затем поменяет переменную на 34
вторая - выведет 34 и поменяет на какое-либо другое значение
т.е. всё происходит как и должно быть
но при настройке ремотинга через конфиг работа прог будет иная
первая прога выведет 5, затем изменит на 34, а вторая должна вывести на консоль 34, но выводит почему то снова 5! т.е. складывается такое ощущение что объект активизируется клиентом

а тот код я просто привёл ради примера, сожалею что ввёл в заблуждение своими траблами с событиями, но оно того стоило, что б с ними разобраться раз и навсегдаsmile
так как же надо писать конфиги, что изменить?
всем спасибо smile 
PM MAIL   Вверх
mr.DUDA
Дата 25.11.2006, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Цитата(Alexsar @  24.11.2006,  23:25 Найти цитируемый пост)
но при настройке ремотинга через конфиг работа прог будет инаяпервая прога выведет 5, затем изменит на 34, а вторая должна вывести на консоль 34, но выводит почему то снова 5! т.е. складывается такое ощущение что объект активизируется клиентом

Покажи конфиг сервака, там есть mode="Singleton" в теге <wellknown> ?
И <lifetime> из клиентского конфига убрать можно, клиент не управляет временем жизни при серверной активации.

Цитата(Alexsar @  24.11.2006,  23:25 Найти цитируемый пост)
а тот код я просто привёл ради примера, сожалею что ввёл в заблуждение своими траблами с событиями, но оно того стоило, что б с ними разобраться раз и навсегда

Кстати, готовился тут к экзамену, проскочил вопрос о приложении типа чата - там все клиенты подписываются на события сервера и обрабатывают их, так правильный ответ был таким: ...bla-bla-bla... subscribe on ChatServer events in the ChatClient class; start listening on Http (для примера) port in the client application.


--------------------
user posted image
PM MAIL WWW   Вверх
Alexsar
Дата 26.11.2006, 12:13 (ссылка) |   (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



вот конфиг сервера
Код

<configuration>
<system.runtime.remoting>
<application name = "server">
<service>
<wellknown mode = "Singleton"
type ="RemOb.Messager, RemOb"
objectUri = "Messager"/>
</service>
<channels>
<channel ref = "tcp" port = "4040"/>
</channels>
</application >
</system.runtime.remoting>
</configuration>

кажись так, пишу по памяти
кстати на тему чата, это я и сделал, тока теперь охота чтоб через конфиги всё работало, так ведь намного круче и легче и мне не придётся перекомпилировать smile 
PM MAIL   Вверх
mr.DUDA
Дата 26.11.2006, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Порты не совпадают: в одном конфиге 4040, в другом - 4000, вот клиент и создаёт объект локально.


--------------------
user posted image
PM MAIL WWW   Вверх
Alexsar
Дата 24.12.2006, 02:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



всем доброй ночи
мне так и не понятно, в чём причина глюков с настройкой ремотинга через конфиг
вот простое приложение, суть работы в следущем: на сервере живёт удалённый объект,
у него есть закрытый член типа double и 2 метода для получения и установления этой переменной в новое состояние
клиент выводит эту переменную на консоль и изменяет её, затем можно будет запустить второй клиент и о чудо, если клиент настроить программно, то всё работает, он выводит на экран новое значение переменной; но горе будет, если настроить через конфиг - ничего не меняется
так где же ошибка? smile 
вот мой проект

Это сообщение отредактировал(а) Alexsar - 24.12.2006, 02:34

Присоединённый файл ( Кол-во скачиваний: 5 )
Присоединённый файл  Remoting.rar 56,77 Kb
PM MAIL   Вверх
Alexsar
Дата 7.1.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



всех с праздниками!
у всех всё работает с конфигами?
дайте хотя бы свой проект, погляжу как надо делать правильно smile 
и ещё раз всех с праздниками
PM MAIL   Вверх
Alexsar
Дата 13.1.2007, 23:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



ну что никто не делал что ли через конфиг? ну может кто пробовал компилить код?
хотя бы напишите, как у вас работает прога, вдруг у меня студия с приколами smile 
а то вовсе беда smile 
PM MAIL   Вверх
mr.DUDA
Дата 14.1.2007, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Нужно правильно указывать полное имя класса в wellknown type="...". В приведённом примере оно "RemOb.Messager, RemOb", а должно быть "Messager,RemOb", либо нужно поместить класс Messager в namespace RemOb. Вот рабочий вариант этого же примера:



Присоединённый файл ( Кол-во скачиваний: 12 )
Присоединённый файл  remoting.zip 18,21 Kb


--------------------
user posted image
PM MAIL WWW   Вверх
Alexsar
Дата 21.1.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



TO mr.DUDA всё зароботало
только возникла новая проблема, и вновь с событиями
при попытке генерации события, объект почему то не может обработать BegiInvoke и генерирует исключение:
System.Runtime.Remoting.RemotingException: This remoting proxy has no channel sink which means either the server has no registered server channels that are listening, or this application has no suitable client channel to talk to the server.

   at System.Runtime.Remoting.Proxies.RemotingProxy.InternalInvoke(IMethodCallMe
ssage reqMcmMsg, Boolean useDispatchMessage, Int32 callType)
   at System.Runtime.Remoting.Proxies.RemotingProxy.Invoke(IMessage reqMsg)
   at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgDa
ta, Int32 type)
   at RemOb.MsgEventHandler.BeginInvoke(String msg, AsyncCallback callback, Obje
ct object)
   at RemOb.Messager.Notify(String msg) in D:\codes\temp\RemOb\RemOb\Class1.cs:line 36

хотя при программной настройке всё работает, что ещё я забыл сделать?
вот новый проект

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  Temp.zip 62,39 Kb
PM MAIL   Вверх
mr.DUDA
Дата 21.1.2007, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Чтобы клиент обрабатывал события от сервера, клиент должен быть одновременно и сервером, т.е. слушать на каком-л. порту, и выставлять наружу тот же класс Messager.


--------------------
user posted image
PM MAIL WWW   Вверх
Alexsar
Дата 28.1.2007, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



то есть что нужно сделать в конфиге? зарегесрировать этот удалённый объект в кофиге клиента как на сервере? или надо в коде клиента это отразить?
PM MAIL   Вверх
Alexsar
Дата 9.2.2007, 23:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 96
Регистрация: 6.5.2005

Репутация: нет
Всего: 1



а вопрос так и остаётся открытым smile 
PM MAIL   Вверх
mr.DUDA
Дата 12.2.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 2
Всего: 232



Цитата(Alexsar @  28.1.2007,  13:41 Найти цитируемый пост)
 зарегесрировать этот удалённый объект в кофиге клиента как на сервере?

да


--------------------
user posted image
PM MAIL WWW   Вверх
Unlocker
Дата 7.5.2009, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: нет
Всего: 2



Поюзал поиск. Решил, что эта тема наиболее близкая к моей проблеме.
Проблема в том, что не могу прикрутить конфиг-файл для Windows-service, получаю почему-то FileNotFoundException, обернутый в RemotingException.
Код

Тип события:    Ошибка
Источник события:    StarterService
Категория события:    Отсутствует
Код события:    0
Дата:        07.05.2009
Время:        13:43:20
Пользователь:        Н/Д
Компьютер:    UNLOCKER
Описание:
Невозможно запустить службу. System.Runtime.Remoting.RemotingException: 
Не удалось правильно считать файл .config Starter.config из-за исключения System.IO.FileNotFoundException: Не удается найти указанный файл.
   at System.IConfigHelper.Run(IConfigHandler factory, String fileName)
   at System.ConfigTreeParser.Parse(String fileName, String configPath, Boolean skipSecurityStuff)
   at System.Runtime.Remoting.Activation.RemotingXmlConfigFileParser.ParseConfigFile(String filename)
   at System.Runtime.Remoting.RemotingConfigHandler.LoadConfigurationFromXmlFile(String filename).
   at System.Runtime.Remoting.RemotingConfigHandler.LoadConfigurationFromXmlFile(String filename)
   at System.Runtime.Remoting.RemotingConfiguration.Configure(String filename)
   at Neolant.PW_Param.Starter.StarterService.OnStart(String[] args)
   at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

Для того, чтобы ошибка не появлялась предусмотрел копирование инсталлятором конфига в директорию установки, и проверял, чтобы копирование выполнялось. Для лучшего понимания приведу пример кода, в котором задана конфигурация и пример конфиг-файла.
Пример жестко закодированной конфигурации.
Код

            TcpChannel tcpChannel = new TcpChannel(8080);
            ChannelServices.RegisterChannel(tcpChannel);
            RemotingConfiguration.RegisterWellKnownServiceType(typeof(Neolant.PW_Param.BL.Facade), "FacadeURI", WellKnownObjectMode.SingleCall);

Конфиг-файл сервиса(сервера)
Код

<configuration>
   <system.runtime.remoting>
      <application>
         <service>
            <wellknown 
               mode="SingleCall" 
               type="Neolant.PW_Param.BL.Facade, Neolant.PW_Param.BL" 
               objectUri="FacadeURI"
            />
         </service>
         <channels>
            <channel 
               ref="tcp" 
               port="8080"
            />
         </channels>
      </application>
   </system.runtime.remoting>
</configuration>

Где сервис после установки ищет файл конфига, если в папке сервиса лежит файл конфига, а вызов осуществляется следующим образом:
Код

                RemotingConfiguration.Configure("Starter.config");

С клиентом все оказалось проще: конфиг нашелся при указании правильного относительного пути. А вот служба заставляет поломать голову. Выскажите свои соображения, пожалуйста.

Это сообщение отредактировал(а) Unlocker - 7.5.2009, 13:07
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
Unlocker
Дата 7.5.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: нет
Всего: 2



Bug fixed!
Как всегда проблемы кроются в недокументированных действиях прикладного ПО, к которому осуществляется привязка. При инициализации платформы, та неявным образом выставляет папку по умолчанию, отличную от директории exe'шника. С этим и были основные проблемы.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
Unlocker
Дата 18.6.2009, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: нет
Всего: 2



Возник еще вопрос, касающийся файлов конфигурации.
При конфигурировании Remoting получаю "интересный" эффект. При жестком кодировании конфигурации все работает нормально. При вызове new создается проксик реального объекта. При использовании процедуры RemotingConfiguration.Configure() эффект несколько отличается от желаемого. Для сравнения работы двух методов проводим вывод на экран записи зарегистрированного типа для сервера методом:
Код

RemotingConfiguration.GetRegisteredWellKnownServiceTypes()[0].ToString();

Записи, выводимые с помощью вышеприведенного метода, совпадают (зрительно). После чтения файла конфига, при вызове метода new на клиенте получаем реальный объект типа вместо проксика. В чем тут могут быть проблемы?
Примеры своих конфигов привожу ниже:
  • "Жесткое" кодирование конфигурации сервера
    Код

    TcpChannel tcpChannel = new TcpChannel(8080);
    ChannelServices.RegisterChannel(tcpChannel);
    RemotingConfiguration.RegisterWellKnownServiceType(typeof(Neolant.PW_Param.BL.Facade), "FacadeURI", WellKnownObjectMode.SingleCall);
  • Конфиг-файл сервера.
    Код

    <configuration>
       <system.runtime.remoting>
          <application>
             <service>
                <wellknown 
                   mode="SingleCall" 
                   type="Neolant.PW_Param.BL.Facade, Neolant.PW_Param.Facade" 
                   objectUri="FacadeURI"
                />
             </service>
             <channels>
                <channel 
                   ref="tcp" 
                   port="8080"
                />
             </channels>
          </application>
       </system.runtime.remoting>
    </configuration>
  • "Жесткое" кодирование конфигурации клиента
    Код

    // Регистрация канала.
    TcpChannel channel = new TcpChannel(0);
    ChannelServices.RegisterChannel(channel);
    // Регистрация типа.
    WellKnownClientTypeEntry remoteType = new WellKnownClientTypeEntry(typeof(Facade), "tcp://localhost:8080/FacadeURI");
    RemotingConfiguration.RegisterWellKnownClientType(remoteType);
  • Конфиг-файл клиента
    Код

    <configuration>
       <system.runtime.remoting>
          <application>
             <client>
                <wellknown 
                   type="Neolant.PW_Param.BL.Facade, Neolant.PW_Param.Facade"
                   url="tcp://localhost:8080/FacadeURI"
                />
             </client>
             <channels>
                <channel 
                   ref="tcp" 
                   port="0"
                />
             </channels>
          </application>
       </system.runtime.remoting>
    </configuration>
Буду рад конструктивным критике и предложениям. 
PS: Среда разработки VS2003

Это сообщение отредактировал(а) Unlocker - 18.6.2009, 14:09
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
Unlocker
Дата 19.6.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: нет
Всего: 2



Проблема, описанная выше, несколько конкретизировалась.
Дело, наверное, не в конфиг-файле (он составлен грамотно), а в несколько другом ракурсе. Попробовал парсить конфиг файл вручную, но столкнулся с невозможностью загрузить нужную сборку при помощи метода LoadFrom() класса System.Runtime.Reflection.Assembly. Пробовал указывать полный путь в файловой системе (хотя нужный файл статически привязан к проекту, сборка находится в References проекта). Получаю сообщение:
Код

"Не найден файл или сборка с именем Neolant.PW_Param.Facade.dll, либо зависимые от них компоненты."

В конечном итоге получается следующее. Если грузить тип в RemotingConfiguration через статическую привязку (жёстко в коде), то все работает без нареканий. Как только мы меняем статику на динамику (через конфиг-файл, а там используется неявно пространство System.RuntimeReflection), то получаем фигуру из трех пальцев. smile 
Какие направления можно еще попробовать?

Это сообщение отредактировал(а) Unlocker - 19.6.2009, 17:39
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
PashaPash
Дата 22.6.2009, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1233
Регистрация: 3.1.2008

Репутация: 6
Всего: 49



Unlocker, выдели интерфейс из Neolant.PW_Param.BL.Facade, перенеси его в отдельную сборку, добавь на нее референс на клиенте, или просто положи в бинарники.


--------------------
PM MAIL WWW   Вверх
Unlocker
Дата 22.6.2009, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: нет
Всего: 2



PashaPash, по большому счету так и сделано. 
Facade класс отдельного проекта библиотеки, я его статически привязал и к клиенту, и к серверу. Сделал "кривой" (но рабочий) вариант статической привязки с участием конфига (наличие конфига - догма  smile ); хотя там явно напрашивается динамическое связывание (late binding) с использованием Reflection, но по временно невыясненным обстоятельствам рефлексия типов работать не хочет.  smile 
Дошло до того, что тестировал попытки прямой загрузки сборки с помощью функции Reflection.Assembly.LoadFrom(), но не тут то было - вылезало исключение о невозможности загрузки сборки по полному пути к файлу. Вот эта проблема меня на настоящий момент занимает.
Может с настройками что-то не так?  smile 
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
cully
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема »


 




[ Время генерации скрипта: 0.1034 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.