PDA

Показать полную графическую версию : [решено] подключение разных сборок с одинаковыми методами


Surround
19-09-2013, 18:15
Здравствуйте!
Есть такая хитрая ситуация: две библиотеки-посредника для получения данных из некоторых баз. Подключаются к проекту посредством Using. Наименования методов и классов одинаковы, но, соответственно работают они в разных контекстах (базах). В проекте есть метод получения данных, он должен по параметру обращаться то к одной, то к другой библиотеке. Все бы ничего, но метод также использует и типы данных, получаемые из подключаемых модулей. По сути дела, код один и тот же, только обращение к данных зависит от того, какая ссылка подключена в Using. Мучаюсь с идеей, а возможно ли, например, для блока кода определить свой контекст подключаемой сборки, ведь логика кода неизменна, а типы данных зависят только от подключенной в Using сборки?

LilLoco
20-09-2013, 08:28
Surround, не совсем понятно что нужно сделать.
Но из того что понял:
в Using указать обе библиотеки. Потом использовать делегаты. И в зависимости от логики вызывать функции из сборок.

Surround
20-09-2013, 10:43
LilLoco, да, что-то типа такого требуется. Подключаются две сборки, например, но в зависимости от условия переменная имеет тип из одной, или другой сборки (название типа абсолютно одинаковы, разное лишь происхождение, родительская сборка). То же самое и с методами, т.е. obj.method может быть из разного происхождения

ViRTaCe
25-09-2013, 00:52
Если я правильно понял ваш вопрос, то вам нужно однозначно идентифицировать метод. Для этого можно использовать полное название классов для получения экземпляра, вместо сокращенного. Например:

FirstLib.Sublib.MyClass //Вмето, MyClass
SecondLib.SubLib.MyClass //Аналогично предыдущему

Surround
03-10-2013, 09:17
В принципе, на данном этапе решил проблему создание еще одного подобного дочернего класса с переименованными методами.
Спасибо!




© OSzone.net 2001-2012