last day (15 days later) » 

8:46 AM
-1
A: Приведение базового класса к наследуемому c#

nick_n_aДля случая, когда классу нужно обладать новым свойством - используют template-обвёртки. Т.е. правильно делать так: public class Pack<T> { public T item; Pack(){ item = default(T); } public double width { get; set; } private void Method(int val){ /*Ну если очен...

 
При этом private свойства не скопируются (рефлексией они не доступны) - это как это?
 
это означает что мы получим неполноценную копию, например если в исходном Product окажется что есть приватные свойства - то они не скопируются. Через рефлексию можно прочесть только защищенные (protected) и публичные (public).
 
Это с чего бы через рефлексию можно только Protected и public?
 
@Grundy а как приватные предлагаете скопировать? (я знаю метод только через token, который заполучить достаточно трудно)
 
Так же как и остальные
 
8:46 AM
этим методом никак, у автора нету private, для этой задачи можно и так.
 
@nick_n_a у меня не вопросы не к вопросу, а к ответу :-)
приватные поля вполне себе получаются и устанавливают
И это выражение: Через рефлексию можно прочесть только защищенные (protected) и публичные (public). в принципе не верно
 
Странно, с флагом NonPublic достаются только protected.
А приватные я доставал специально через token
 
@nick_n_a и тут необходим пример кода
потому что через NonPublic все вполне достается
 
Сейчас... вспомню что не получалось...
 
@nick_n_a единственная проблема, которая мне помнится с рефлексией, что у отдельной сборки можно было настроить права доступа, и в этом случае что-то действительно могло пойти не так, но подробностей не помню
В обычных же случаях все вполне тривиально
 
9:00 AM
Наверное private не доступно, если класс с защищенной или "можно было настроить права доступа," с такой сборки. Мне не удавалось никак, кроме как через перебор токенов, добится доступа к... шас найду
Нашеш, я не мог получить поле SqlConnectionFactory из SqlConnection, хотя оно есть, и оно в секции private. И много других приватных полей из http и sql библиотеки microsoft не доступны если в секции private через обычную рефлексию, я стал ошибочно полагать что private не доступно для чтения везде. Спасибо - поправлю.
 
9:21 AM
@nick_n_a эм... что-то я не вижу в SqlConnection поля SqlConnectionFactory
@nick_n_a, не понял зачем ты в коде поправил на NonPublic, если в вопросе все поля/свойства публичные
 
За тем, что возмножно этот код захочет использовать не только автор. Теперь думаю... возможно Fields нужно копировать и всё. А может и не надо на "спорные" вопросики давать ответы...
 
9:42 AM
@nick_n_a попробовал сейчас получить приватные поля SqlConnection - все отлично получается
 

last day (15 days later) »