Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Reflection: Поиск реализации свойства интерфейса, в классе 
V
    Опции темы
Piphon
Дата 11.12.2007, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 30.3.2004
Где: Екатеринбург

Репутация: нет
Всего: 2



Доброе время суток. smile

Даны класс и интерфейс который он реализуюет.

Код

    public interface IMyInterface
    {
        string MyProperty
        {
            get;
            set;
        }

    }

    public class MyClass : IMyInterface
    {
        private string myProperty;
        
        public string MyProperty
        {
            get{ return myProperty; }
            set{ myProperty = value; }
        }
    }


Как с помощью рефлексии узнать, что свойство MyProperty класса является реализацией свойства интерфейса?
--------------------
Non Progredi Est Regredi...
PM MAIL ICQ   Вверх
izekia
Дата 11.12.2007, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: 1
Всего: 3



Piphon, я точно по методам подсказать не могу, но из типа можно узнать о релизуемых интерфейсах, а там пробежаться по свойствам, может быть есть более короткий вариант - сейчас посмотрю

вот что нашел:
public abstract System.Type DeclaringType { get; }
    Member of System.Reflection.MemberInfo

Summary:
Gets the class that declares this member.

Returns:
The Type object for the class that declares this member.

MemberInfo можно из типа по имени получить

Это сообщение отредактировал(а) izekia - 11.12.2007, 10:24
PM MAIL   Вверх
Piphon
Дата 11.12.2007, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 30.3.2004
Где: Екатеринбург

Репутация: нет
Всего: 2



Метод GetInterfaceMap объекта Type. Передаешь емутип интерфейса и он строет карту реализации...

Решение найдено.
--------------------
Non Progredi Est Regredi...
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0375 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.