Почему продавцы делают свои языки до смешного сложными для простых вещей?
Привет...
Я уже давно работаю с этим .NET development environments с тех пор, как она была коммерчески выпущена в 2001 году.
Я свободно владею обоими языками VB.NET и C#, хотя мой любимый язык всегда был таким VB.NET (спиши это на мои долгие годы работы разработчиком DBase).
В любом случае, кто из языковых дизайнеров так ужасно усложняет жизнь нам, разработчикам и инженерам?
Недавно я разрабатывал сложное расширение для нового коммерческого приложения, которое я разрабатывал. Это платное расширение предоставит приложению ряд функций безопасности, включая обработку пароля приложения.
В результате это расширение, которое будет загружено во время выполнения (если пользователь купит его), предоставит форму ввода пароля в качестве начального аспекта запуска приложения (и пользователь предварительно настроил пароль в базе данных приложения).
Ладно, пока все хорошо. Форма ввода пароля содержит свойство, к которому будет обращаться отражение, которое будет содержать введенный пароль. Таким образом, родительское\хост-приложение может получить доступ к данным более подходящим способом, а не просто быть общедоступной строкой.
Так как же мы должны получить доступ к таким данным?
>>>
' retrieve value of window's "ENTERED_PASSWORD" property loPropertyInfo = loWindow.GetType().GetProperty("ENTERED_PASSWORD") lsEnteredPassword = DirectCast(loPropertyInfo.GetValue(loWindow, Nothing), String)<<<
Это решение заняло у меня почти 3 часа, чтобы найти; по крайней мере, для того, что я нашел на самом деле работает.
Вопрос в том, почему нужно снова выполнять вызов GetValue класса PropertyInfo, который затем должен снова ссылаться на вызывающий метод обратно к исходному источнику, где определено свойство (в данном случае "ENTERED_PASSWORD" в форме ввода пароля, которая определяется как "loWindow")?
Из всех глупостей, которые придумала Microsoft, эта должна быть самой глупой.
Можно было бы подумать, что как только вы получите объект PropertyInfo, вы можете просто получить доступ к именованному значению свойства из него. И хотя вы можете перечислить информацию об именованном свойстве, получение значения - это совершенно другое вращение.
Любые мысли об этом были бы очень благодарны, так как я ненавижу, когда ищу что-то, что должно быть относительно прямолинейным и простым, только чтобы найти такую разрозненную бессмыслицу.
И да, я знаю, что это могло быть результатом внутренних дизайнерских решений. Но знаешь что? Я видел это во многих компиляторах, с которыми работал на протяжении многих лет, и мне кажется, что во многих случаях внутренние дизайнеры полностью оторваны от реальности.
Что еще разработчик хотел бы больше всего от объекта PropertyInfo, чем значение свойства?
Спасибо...
Что я уже пробовал:
Я провел довольно много исследований по этому вопросу, и практически все найденные решения не давали рабочих результатов. Решение, отмеченное в моем вопросе, было единственным рабочим решением, которое я смог найти в этом отношении...
Wendelius
Не знаю, почему этот вопрос был отвергнут так резко. Я думаю, что многие другие задаются тем же вопросом.