powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
19 сообщений из 19, страница 1 из 1
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016259
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый,

Есть 2е DLL в которых 2 класса с одинаковыми именами но разными свойствами (на самом деле библиотек будет больше чем 2е)

Необходимо при добавлении этих библиотек в проект и объявлении чтобы она отображалась как единая, и чтобы объявленый экземплях имел все свойства 2х DLL.


Сейчас не понимаю возможно ли это вообще. Попытался погуглить но нужного не нашел.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016299
zz118
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется, что ТС хочет что-то очень странное.
Такое "объединение" классов впрямую невозможно. Возможно, стоит посмотреть в сторону паттернов: адаптер, фасад, декоратор. Трудно понять контекст, но что-нибудь из перечисленного может натолкнуть на правильное решение.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016304
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz118Мне кажется, что ТС хочет что-то очень странное.
Такое "объединение" классов впрямую невозможно. Возможно, стоит посмотреть в сторону паттернов: адаптер, фасад, декоратор. Трудно понять контекст, но что-нибудь из перечисленного может натолкнуть на правильное решение.
да посто нужно определить интерфейс в обоих классах и работать с классами через эти интерфейсы.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016314
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GСейчас не понимаю возможно ли это вообще.
в описанном виде - нет.


Артем GНеобходимо
учточните, с какой целью
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016323
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zz118Такое "объединение" классов впрямую невозможно.
Возможно - это partial classes. Но части таких классов должны быть в одной сборке, и одном неймспейсе. Так что ТС хочет невозможного.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016331
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В принципе можно генерить сборку,собирая байткод и метаданные из разных источников

но со студией фокус не выйдет
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016353
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уточняю цель (эх так и знал что нужно будет уточнить цель)

Нужно подрубаться к SAP. Проектов просто тьма. Каждый раз приходиться создавать "что-то" с нуля.

Нужна стандартизация. Это стало просто критично. Подумал двинуться в сторону слоя и репозиториев. Проблема в том что в каждом проекте разные таблицы.

Решил создавать под каждую таблицу отдельную DLL содержащую классы таблица, слой и репозиторий. Добавлять / Удалять в проекте по мере необходимости эти DLL.

Слой должен содержать все репозитории. В слое будет конекшен для всех репозиториев.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016355
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сон Веры Павловныzz118Такое "объединение" классов впрямую невозможно.
Возможно - это partial classes. Но части таких классов должны быть в одной сборке, и одном неймспейсе. Так что ТС хочет невозможного.

Попробывал через partial но не получилось видно по причине того, что сборки разные ( . Пространство имен одно и тоже.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016369
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GУточняю цель (эх так и знал что нужно будет уточнить цель)

Нужно подрубаться к SAP. Проектов просто тьма. Каждый раз приходиться создавать "что-то" с нуля.

Нужна стандартизация. Это стало просто критично. Подумал двинуться в сторону слоя и репозиториев. Проблема в том что в каждом проекте разные таблицы.

Решил создавать под каждую таблицу отдельную DLL содержащую классы таблица, слой и репозиторий. Добавлять / Удалять в проекте по мере необходимости эти DLL.

Слой должен содержать все репозитории. В слое будет конекшен для всех репозиториев.
создайте интерфейс таблиц, слоя и репозитория, в каждом проекте определите их и вызывайте все, что вам нужно из одного центрального проекта через эти интерфейсы.
Еще 1 вариант: рефлексия, атрибуты, но это будет ужасно.
Как я понял: у вас есть куча dll, в каждой из них есть сервис класс для работы с таблицей (загрузка, добавление, удаление срок), класс некого слоя представления и репозитория (что это такое я хз, но видимо это какие то справочники).
У всех этих классов одни названия, но методы у всех называются по разному.
Следовательно, вы создаете интерфейс, создаете классы наследованные на базе существующих и определяете в реализации интерфейсов вызов тех методов, которые определены в базовом классе со своими уникальными именами.
То есть в методах и свойствах интерфейса, вы просто обращаетесь в базовым методам, ну или дополняете логику.
по другому как по мне, не получится.

У меня такой вопрос, у вас получилось то, что вы задумали, куда потом всё это?
ради чего весь этот геморой?
чисто ради стандартизации? тогда об этом надо было думать раньше, есть же еще вариант переделать существующие проекты (в новой итерации)
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016396
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GУточняю цель (эх так и знал что нужно будет уточнить цель)

Нужно подрубаться к SAP. Проектов просто тьма. Каждый раз приходиться создавать "что-то" с нуля.

Нужна стандартизация. Это стало просто критично. Подумал двинуться в сторону слоя и репозиториев. Проблема в том что в каждом проекте разные таблицы.

Решил создавать под каждую таблицу отдельную DLL содержащую классы таблица, слой и репозиторий. Добавлять / Удалять в проекте по мере необходимости эти DLL.

Слой должен содержать все репозитории. В слое будет конекшен для всех репозиториев.ИМХО Вы не верно понимаете подход "слоя и репозиториев". При чем тут стандартизация? Почему классы получаются одинаковые?

В SAP проекты наверняка относятся к разным частям предметной области, содержат разную логику.
Зачем их объединять?
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016435
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 (параметры)


Вобщем на сколько это правильный подход не знаю. Лучше пока в голову ни чего не пришло :)
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016452
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skyANAВ SAP проекты наверняка относятся к разным частям предметной области, содержат разную логику.
Зачем их объединять?

Пример: Есть проекты А, Б, С, Д, Е

А, С, Е - использует данные из таблицы BKPF

A, Д, E - использует данные из таблицы BSEG


Создав для каждой таблицы свою dll мне как видиться сейчас будет проще. Все библиотеки для чтения данных из таблиц унифицированы. Все что нужно подключить. Все репозитории объединены одним слоем, который содержит в себе коннекшен, общий для всех таблиц.

Если у меня не правильный подход-понимание. Пожалуйста, посоветуйте правильное направление.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016480
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtesсоздайте интерфейс таблиц, слоя и репозитория, в каждом проекте определите их и вызывайте все, что вам нужно из одного центрального проекта через эти интерфейсы.


Спасибо. Попробую.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016529
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G,

на сколько я понял, вы хотите создать своеобразную систему плагинов, чтоб при подключении сборки к проекту, она сама подтягивалась и встраивалась куда ей надо.
Пример в интернетах 1000, все на базе интерфейсов. Ищите и обращете
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016664
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем G, сложно сказать, правильный у Вас подход, или нет, чисто по названию классов.

Зачастую выделяется набор общих интерфейсов и делается набор их реализаций под каждый внешний проект.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016726
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
почему не подходит создание суперсборки из partial исходников по необходимости?
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016743
Артем G
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Изопропилпочему не подходит создание суперсборки из partial исходников по необходимости?

Сорри не понимаю просто о чем речь. Но обязательно погуглю.
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39016935
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем GСорри не понимаю просто о чем речь
компилировать сборку . Если нужно пошаманить - T4 препроцессор применить
...
Рейтинг: 0 / 0
Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
    #39017152
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилАртем GСорри не понимаю просто о чем речь
компилировать сборку . Если нужно пошаманить - T4 препроцессор применить
нафига ему T4, Если у него уже куча кода написанного, ему не генерировать надо типа, а кучи "говна" собрать в большую кучу =) как я понял, для этого как то объединив кучки )
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Объединение 2х классов с одинаковыми именами из двух разных библиотек с разными свойствами
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]