Вот история на данный момент:
Я делаю приложение на C # winforms, чтобы упростить указание оборудования для предложений по прокату.
В нем у меня есть List<T>
из ~ 1500 акцийitems.
Эти элементы имеют свойство AutospecQty
, которое имеет метод доступа get
, который должен выполнять некоторый код, специфичный для каждого элемента.Этот код будет ссылаться на различные другие элементы в списке.
Так, например, один элемент (назовем его Item0001
) имеет этот аксессор get
, который может нуждаться в выполнении некоторого кода, который может что-то выглядетькак это:
[some code to get the following items from the list here]
if(Item0002.Value + Item0003.Value > Item0004.Value)
{ return Item0002.Value }
else
{ return Item0004.Value }
Это все хорошо, но эти фрагменты кода, вероятно, будут меняться еженедельно, поэтому я стараюсь избегать частого повторного развертывания.Кроме того, каждый элемент может (будет) иметь совершенно другой код.Некоторые будут запрашивать список, некоторые будут выполнять некоторые математические функции с длинными задницами, некоторые будут простым добавлением, как указано выше ... некоторые будут зависеть от переменных, не содержащихся в списке.
Что бы я хотелдля этого нужно сохранить код для каждого элемента в таблице в моей базе данных, а затем, когда приложение запустится, просто вытянуть соответствующий код и выбросить его в список, готовый к выполнению, когда придет время.
Большинство примеров, которые я видел в интернете по поводу выполнения строки как кода, кажутся довольно запутанными, запутанными и / или не особенно дружественными для начинающих программистов (я - полный любитель), и, похоже, не принимаютв учет передаваемых переменных.
Итак, вопросы:
- Есть ли более простой / простой способ достижения того, что я пытаюсь сделать?
- Если1 = false (я полагаю, что это так), стоит ли усилий всех потенциальных проблем этого подхода или лучше потратить мое время на написание функции автоматического обновления в приложении иХранить все это внутри основного приложения (чтобы пользователю просто нужно было обновлять само приложение раз в неделю)?
- Еще одна (вероятно, плохая) идея, с которой я столкнулся, перенес весь код автоспуска в отдельноеDLL, или либо просто переустанавливать ее, когда это необходимо, либо возможно даже ссылаться на одну DLL на общем сетевом диске?
Я думаю, это довольно опасная территория, куда бы я ни пошел.Может кто-нибудь сказать мне, открываю ли я банку с червями, которую лучше оставить хорошо и по-настоящему закрытой?
Есть ли лучший способ сделать все это?У меня есть привычка усложнять вещи, которые я пытаюсь отбросить: P
Так же, как дополнительная информация, код автоспуска не будет вводиться пользователем.Я буду обновлять его каждую неделю (никто другой не имеет к нему доступа), так что, надеюсь, это хотя бы уменьшит некоторые проблемы с безопасностью.
Извините, если я плохо это объяснил.
Заранее спасибо