![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| Uvs |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 8.8.2007 Где: Челябинск Репутация: нет Всего: нет |
Доброе утро всем! Возникла проблема.
Программа ищет в директории dll-ки, в них находятся классы наследующие определенный interface. Создаем объекты этих классов при помощи позднего связывания. public abstract class Bank { public string Name { get; set; } public string Account { get; set; } public string Bic { get; set; } public string Corr { get; set; } public Bank(){} public Bank(string name, string account, string bic, string corr) { Name = name; Account = account; Bic = bic; Corr = corr; } public interface IConvert { string Name { get; set; } List<string> Read(); void Export(object lbx); } public class AgroImpuls : Bank, IConvert { private cIni ini; private List<string> Heads; private Array keyValues; public AgroImpuls() : this("", "", "", "") {} public AgroImpuls(string name, string account, string bic, string corr) : base(name, account, bic, corr) { ini = new cIni(Application.StartupPath + "\\Convert.ini"); Heads = new List<string>(); Name = "Агроимпульс"; keyValues = new Array[0]; } В основной программе создаются объекты типов: string folder = System.AppDomain.CurrentDomain.BaseDirectory; string[] files = Directory.GetFiles(folder, "*.dll"); foreach (string file in files) { Assembly asm = Assembly.LoadFrom(file); Type[] types = asm.GetTypes(); foreach (Type type in types) { Type t = type.GetInterface("IConvert"); if(t != null) { plg = asm.CreateInstance(type.FullName) as IConvert; paymentList.Clear(); paymentList = plg.Read(); // метод Read в каждой dll-ке заполняет и возвращяет List<string>Heads } } } позже, когда я вызываю другие методы dll-ки и бращаюсь к списку Heads - он почему-то оказывается пустым. В чем тут прчина? Никак в толк не возьму! |
|||
|
||||
| Alekz |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 86 Регистрация: 5.2.2008 Где: Запорожье, Украин а Репутация: 1 Всего: 2 |
В вашем примере список Heads в классе AgroImpuls не заполняется в конструкторе. Так что он и должен оставаться пустым в точке вызова IConvert.Read().
Это сообщение отредактировал(а) Alekz - 10.10.2008, 09:34 |
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |