Assembly ass = Assembly.Load("SkalarkiIO.SDK"); // имя сборки
Type t = ass.GetType("SkalarkiIO.SDK.Displays"); // namespace.имя_класса
t = t.GetNestedType("OVHD");
t = t.GetNestedType("ELEC");
// TODO Change to while NestedType != null do t = t.GetNestedType(...)
FieldInfo f = t.GetField("BAT1", BindingFlags.DeclaredOnly |
BindingFlags.Public | BindingFlags.Static); // поле
object value = f.GetValue(null); // значение поля
eventClient.SetDisplayText((SkalarkiIO.SDK.IDisplayDescriptor)value,"123");
По факту нам надо не обертку а именно понять как решить нашу запутку. Некий код, работающий с оборудованием, уже есть, так что проще дописать туда, чем делать отдельное решение.
John_Nash: Для нас mixed mode - темный лес :) Нам нужно консольное приложение, с которым будет взаимодействовать оборудование, мы его на c# накидали, но уперлись в вышеописанную проблему. Хардкодить имена классов нельзя, поскольку они будут меняться у вендора, и нам фактически нужна обертка для изоляции этих изменений. Готовы заплатить за решение.
norlin: Да, это нужно, но ее суть - просто обязательная бюрократическая операция. Публикуете вакансию через местный центр занятости с указанием специфических требований, соответствующих вашим скиллам. Операция бесплатна. Как правило в ответ на вакансию вам приходит куча резюме всякой безработной школоты. Зарплата, достаточная для ВНЖ, в данный момент не является суперпривлекательной, так что получить резюме реального кандидата сложно. И даже если таковой найдется, никто не обязывает вас принимать его на работу. Эта вакансия должна быть видна в базе на момент подачи вызова, потом удаляется.
Про реальную деятельность ничего не сказано, но эмпирическим путем выясняется, что лучше пару операций в квартал по счету проводить. Хотя знаю прецедент с получением ВНЖ под купленную компанию, которая реальной деятельности не вела, для российских граждан могут нынче проверять пожестче.
Через представительство можно и в Латвии ВНЖ получать, но требования по минимальной зарплате (и налогам с нее) значительно выше, чем при получении под трудовой контракт. Ну и наличие материнской компании в РФ несколько противоречит смыслу получения ВНЖ. Ликвидируют в России вам компанию - и привет.
norlin: Это минимальный размер зарплаты, который дает вам право на ВНЖ (не путать с "минимальной зарплатой"). Средства на руки можно выводить через зарплату, но платить соотв. налоги (высокие). А оптимизацию налогообложения мы тут обсуждать не будем, сорри, тема сложная :)
Пума Тайланд: в литве не дешевле. налоги там выше (в том числе "зарплатные"), и у компании должно быть не менее трех работников местных. это дороже раза в четыре выходит, чем в латвии.
norlin: они кривые, к сожалению. и индивидуальный коммерсант != российскому ИП, там много печальных отличий. Теоретически основания для получения ВНЖ изыскать можно, но расходы будут как при получении ВНЖ члену правления, + добавятся специфические сложности.
Вы безусловно можете придумать способ обмена разделяемой функциональностью путем черри-пиков между ветками. Ну или делать форки исходного репозитория и далее переносить изменения через патчи.
Но правильные способы — composer/субмодули. Поверьте, все остальные способы содержат в себе кучу грабель. Если эти способы вам не подходят — меняйте архитектуру, или упретесь в неразрешимые проблемы достаточно быстро.
Боюсь, что в этом случае надо начинать не со способов использования git, а с понимания, где в архитектуре запутка. Авторизация — это не ветка в git, а обособленная функциональность. Если ее нельзя включить в проект без изменения во многих остальных частях — у вас проблема со связанностью.
Предположим, в проекте A исправлена ошибка в функции авторизации. Как вы исправления собираетесь передавать в проект B?