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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> C# Reflection 
:(
    Опции темы
pablo
Дата 18.6.2006, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

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



Есть код: 

Код

using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Xml;
using System.IO;

namespace Kursinis
{
    class Program
    {
        static void Main(string[] args)
        {
            MovieFinder finder = new ColonMovieFinder("file1.txt");
            List<string> a = finder.findAll();
            foreach (string s in a)
                Console.WriteLine(s);
        }
    };
    interface MovieFinder 
    {
        List<string> findAll();
    };
    class ColonMovieFinder : MovieFinder
    {
        public ColonMovieFinder(string filename)
        {
            StreamReader reader = new StreamReader(filename);
            string tmp;
            m_Movies = new List<string>();
            while ((tmp = reader.ReadLine()) != null)
                m_Movies.Add(tmp);
        }
        public List<string> findAll()
        {
            return m_Movies;
        }
        private List<string> m_Movies;
    };
}


Как можно используя C# Reflection создать объект класса ColonMovieFinder ? 
Заранее благодарен за ответы. 


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
Void
Дата 18.6.2006, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


λcat.lolcat
****


Профиль
Группа: Участник Клуба
Сообщений: 2206
Регистрация: 16.11.2004
Где: Zürich

Репутация: 25
Всего: 173



Цитата(pablo @  18.6.2006,  02:05 Найти цитируемый пост)
Как можно используя C# Reflection создать объект класса ColonMovieFinder ? 

Что значит, используя reflection? Тут масса вариантов. Простейший для демонстрации:
Код
MovieFinder finder = (MovieFinder) Activator.CreateInstance(
    Assembly.GetCallingAssembly().GetType("Kursinis.ColonMovieFinder"),
    new object[] { "file1.txt" });
 


--------------------
“Coming back to where you started is not the same as never leaving.” — Terry Pratchett
PM MAIL WWW GTalk   Вверх
arilou
Дата 18.6.2006, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



pablo, че та мне это Фаулера напомнило  smile  


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
pablo
Дата 18.6.2006, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

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



Цитата

Что значит, используя reflection? Тут масса вариантов. Простейший для демонстрации:

Это как раз мне и надо было smile

Цитата

pablo, че та мне это Фаулера напомнило 


Да взято именно от туда smile 


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
pablo
Дата 18.6.2006, 02:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

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



А как перед созданием узнать какие конструкторы имеются у объекта и какие у них параетры ? 


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
arilou
Дата 18.6.2006, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Великий МунаБудвин
****


Профиль
Группа: Экс. модератор
Сообщений: 2646
Регистрация: 15.7.2004
Где: город-герой Минск

Репутация: 21
Всего: 61



Цитата(pablo @  18.6.2006,  02:59 Найти цитируемый пост)
А как перед созданием узнать какие конструкторы имеются у объекта и какие у них параетры ?  

Это ты dependency injection собираешься освоить? Посмотри, как сделано тут: Castle Container 


--------------------
user posted imageuser posted image
PM WWW ICQ   Вверх
pablo
Дата 18.6.2006, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 320
Регистрация: 12.2.2005
Где: Вильнюс, Литва

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



Цитата

Это ты dependency injection собираешься освоить

Просто пытаюсь сделать что-то похожее, хотябы самый примитивный пример.  


--------------------
Первый блин всегда похож на сферу, иногда бывает и куб.
PM MAIL ICQ   Вверх
mr.DUDA
Дата 19.6.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(pablo @  18.6.2006,  02:59 Найти цитируемый пост)
А как перед созданием узнать какие конструкторы имеются у объекта и какие у них параетры ? 

берём Type.GetConstructors(), проходим по каждому и дёргаем GetArguments(), вроде... 


--------------------
user posted image
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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