|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
День добрый, Есть 2е DLL в которых 2 класса с одинаковыми именами но разными свойствами (на самом деле библиотек будет больше чем 2е) Необходимо при добавлении этих библиотек в проект и объявлении чтобы она отображалась как единая, и чтобы объявленый экземплях имел все свойства 2х DLL. Сейчас не понимаю возможно ли это вообще. Попытался погуглить но нужного не нашел. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 00:10 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Мне кажется, что ТС хочет что-то очень странное. Такое "объединение" классов впрямую невозможно. Возможно, стоит посмотреть в сторону паттернов: адаптер, фасад, декоратор. Трудно понять контекст, но что-нибудь из перечисленного может натолкнуть на правильное решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 08:03 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
zz118Мне кажется, что ТС хочет что-то очень странное. Такое "объединение" классов впрямую невозможно. Возможно, стоит посмотреть в сторону паттернов: адаптер, фасад, декоратор. Трудно понять контекст, но что-нибудь из перечисленного может натолкнуть на правильное решение. да посто нужно определить интерфейс в обоих классах и работать с классами через эти интерфейсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 08:26 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Артем GСейчас не понимаю возможно ли это вообще. в описанном виде - нет. Артем GНеобходимо учточните, с какой целью ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 08:58 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
zz118Такое "объединение" классов впрямую невозможно. Возможно - это partial classes. Но части таких классов должны быть в одной сборке, и одном неймспейсе. Так что ТС хочет невозможного. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 09:07 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
В принципе можно генерить сборку,собирая байткод и метаданные из разных источников но со студией фокус не выйдет ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 09:13 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Уточняю цель (эх так и знал что нужно будет уточнить цель) Нужно подрубаться к SAP. Проектов просто тьма. Каждый раз приходиться создавать "что-то" с нуля. Нужна стандартизация. Это стало просто критично. Подумал двинуться в сторону слоя и репозиториев. Проблема в том что в каждом проекте разные таблицы. Решил создавать под каждую таблицу отдельную DLL содержащую классы таблица, слой и репозиторий. Добавлять / Удалять в проекте по мере необходимости эти DLL. Слой должен содержать все репозитории. В слое будет конекшен для всех репозиториев. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 09:43 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Сон Веры Павловныzz118Такое "объединение" классов впрямую невозможно. Возможно - это partial classes. Но части таких классов должны быть в одной сборке, и одном неймспейсе. Так что ТС хочет невозможного. Попробывал через partial но не получилось видно по причине того, что сборки разные ( . Пространство имен одно и тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 09:45 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Артем GУточняю цель (эх так и знал что нужно будет уточнить цель) Нужно подрубаться к SAP. Проектов просто тьма. Каждый раз приходиться создавать "что-то" с нуля. Нужна стандартизация. Это стало просто критично. Подумал двинуться в сторону слоя и репозиториев. Проблема в том что в каждом проекте разные таблицы. Решил создавать под каждую таблицу отдельную DLL содержащую классы таблица, слой и репозиторий. Добавлять / Удалять в проекте по мере необходимости эти DLL. Слой должен содержать все репозитории. В слое будет конекшен для всех репозиториев. создайте интерфейс таблиц, слоя и репозитория, в каждом проекте определите их и вызывайте все, что вам нужно из одного центрального проекта через эти интерфейсы. Еще 1 вариант: рефлексия, атрибуты, но это будет ужасно. Как я понял: у вас есть куча dll, в каждой из них есть сервис класс для работы с таблицей (загрузка, добавление, удаление срок), класс некого слоя представления и репозитория (что это такое я хз, но видимо это какие то справочники). У всех этих классов одни названия, но методы у всех называются по разному. Следовательно, вы создаете интерфейс, создаете классы наследованные на базе существующих и определяете в реализации интерфейсов вызов тех методов, которые определены в базовом классе со своими уникальными именами. То есть в методах и свойствах интерфейса, вы просто обращаетесь в базовым методам, ну или дополняете логику. по другому как по мне, не получится. У меня такой вопрос, у вас получилось то, что вы задумали, куда потом всё это? ради чего весь этот геморой? чисто ради стандартизации? тогда об этом надо было думать раньше, есть же еще вариант переделать существующие проекты (в новой итерации) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 09:58 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Артем GУточняю цель (эх так и знал что нужно будет уточнить цель) Нужно подрубаться к SAP. Проектов просто тьма. Каждый раз приходиться создавать "что-то" с нуля. Нужна стандартизация. Это стало просто критично. Подумал двинуться в сторону слоя и репозиториев. Проблема в том что в каждом проекте разные таблицы. Решил создавать под каждую таблицу отдельную DLL содержащую классы таблица, слой и репозиторий. Добавлять / Удалять в проекте по мере необходимости эти DLL. Слой должен содержать все репозитории. В слое будет конекшен для всех репозиториев.ИМХО Вы не верно понимаете подход "слоя и репозиториев". При чем тут стандартизация? Почему классы получаются одинаковые? В SAP проекты наверняка относятся к разным частям предметной области, содержат разную логику. Зачем их объединять? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 10:20 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Roman Mejtes У меня такой вопрос, у вас получилось то, что вы задумали, куда потом всё это? ради чего весь этот геморой? чисто ради стандартизации? тогда об этом надо было думать раньше, есть же еще вариант переделать существующие проекты (в новой итерации) Сейчас ~ 70-80 готовых мелких-средних проектов где беруться данные из САП (от 1-3 таблиц до 10-12 примерно) Проекты писались людьми с разным уровнем знаний по програмированию. Сейчас в списке идей около ~ 1500 проектов разной сложности. В некоторых проектах програмирование не требуется, только действия от бухгалтеров для упрощения бизнесс процесса. Это общий список. Сколько из них требуют кода связанного с сап точно сказать не могу. Оценить руки не доходят. Вариантов подключения и получения данных из сап тех что я видел использовались ~ 3 штуки ПОследний вариант, которым пошел я это из BizTalkAdapterPack взял 2 библиотеки: Microsoft.Adapters.SAP.dll, Microsoft.Adapters.SAP.SAPGInvoker.dll На их базе создал следующие классы: Sap.Rfc.ReadTable.dll - Configure - SapBinding - SapConnectionUri - SapEndPoint - Objects - RFC_DB_FLD - RFC_DB_OPT - TAB512 - Proxy - ClientReadTable - RequestReadTable - ResponseReadTable Сейчас пытаюсь сделать следующее - это насоздавать вот таких библиотек. Репозиторий должен будет содержать логику получения данных из сап, а слой общий коннекшен к сапу для всех репозиториев, доступ к репозиториям через слой. Sap.Tables.BKPF.dll - Tables - BKPF - Service - DataLayerSap - RepositoryBKPF - Load (параметры) Sap.Tables.BSEG.dll - Tables - BSEG - Service - DataLayerSap - RepositoryBSEG - Load (параметры) Вобщем на сколько это правильный подход не знаю. Лучше пока в голову ни чего не пришло :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 10:40 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
skyANAВ SAP проекты наверняка относятся к разным частям предметной области, содержат разную логику. Зачем их объединять? Пример: Есть проекты А, Б, С, Д, Е А, С, Е - использует данные из таблицы BKPF A, Д, E - использует данные из таблицы BSEG Создав для каждой таблицы свою dll мне как видиться сейчас будет проще. Все библиотеки для чтения данных из таблиц унифицированы. Все что нужно подключить. Все репозитории объединены одним слоем, который содержит в себе коннекшен, общий для всех таблиц. Если у меня не правильный подход-понимание. Пожалуйста, посоветуйте правильное направление. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 10:52 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Roman Mejtesсоздайте интерфейс таблиц, слоя и репозитория, в каждом проекте определите их и вызывайте все, что вам нужно из одного центрального проекта через эти интерфейсы. Спасибо. Попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 11:07 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Артем G, на сколько я понял, вы хотите создать своеобразную систему плагинов, чтоб при подключении сборки к проекту, она сама подтягивалась и встраивалась куда ей надо. Пример в интернетах 1000, все на базе интерфейсов. Ищите и обращете ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 11:34 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Артем G, сложно сказать, правильный у Вас подход, или нет, чисто по названию классов. Зачастую выделяется набор общих интерфейсов и делается набор их реализаций под каждый внешний проект. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 13:04 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
почему не подходит создание суперсборки из partial исходников по необходимости? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 13:42 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Изопропилпочему не подходит создание суперсборки из partial исходников по необходимости? Сорри не понимаю просто о чем речь. Но обязательно погуглю. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 13:51 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
Артем GСорри не понимаю просто о чем речь компилировать сборку . Если нужно пошаманить - T4 препроцессор применить ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 15:59 |
|
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
|
|||
---|---|---|---|
#18+
ИзопропилАртем GСорри не понимаю просто о чем речь компилировать сборку . Если нужно пошаманить - T4 препроцессор применить нафига ему T4, Если у него уже куча кода написанного, ему не генерировать надо типа, а кучи "говна" собрать в большую кучу =) как я понял, для этого как то объединив кучки ) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.07.2015, 21:38 |
|
|
start [/forum/topic.php?fid=20&tid=1401327]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
97ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 327ms |
total: | 523ms |
0 / 0 |