2010-07-06 4 views
0

Я попытался создать библиотеку классов, которая используется в приложении winforms на C#.Class Library in C#

В моем приложении у меня есть ввод из текстового поля и через кнопку click Я создаю мое событие с одним параметром (из текстового поля). Я попытался создать конструктор с этот один параметр - но безрезультатно. Кажется, если я просто добавлю существующий класс проект, я могу это сделать, но не при ссылке на библиотеку классов.

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

+2

У меня нет проблем с тем, что вы пытаетесь сделать. Вы используете что-то между вашим кодом и библиотекой, которая создает экземпляр класса и требует конструктора по умолчанию? Можете ли вы опубликовать код? – spinon

+2

«Безрезультатно»: какова ошибка? – Blorgbeard

+2

Замедляйтесь и помогите нам помочь. – ChaosPandion

ответ

3

Если ваша новая библиотека классов находится в отдельном проекте C#, вам необходимо установить ссылку на этот проект из вашего приложения WinForms, прежде чем вы сможете использовать этот класс.

Конечно, я пытаюсь читать между строками вашего оригинального сообщения. Похоже, вы знаете, как заставить его работать, просто не тогда, когда класс определен в отдельном проекте. Если я не понял, просьба дать больше информации.

0

это звучит, как вы не имеете два конструктора ... (перегружено) для вашего класса, таких как

public class YourClass 
{ 
    public YourClass() 
    { 
    } 


    public YourClass(String OneParameter) // this OVERLOADS the default No parameter one 
    { 
     DoWhatever with your OneParameter... 
    } 
} 
1

Не достаточно опыта, чтобы сайт upvote или комментария себя еще, но ответ DRapp в фиксированном мою проблеме. Поскольку исходный вопрос немного расплывчатый, я думал, что подробно расскажу о том, что я видел немного больше:

Я пишу приложение метро в C++, которое ссылается на библиотеку классов, созданную на C#. Создание объектов, экспортированных из модуля C#, работало нормально, если у их конструкторов не были параметры.

// C# file exported to .winmd class library for use in metro app 
namespace A 
{ 
    public sealed class B 
    { 
     public B(bool bTest) 
     {} 

     // Other methods/members... 
    } 
} 

// C++ metro app referencing .winmd created from C# above 
... 

A::B^ spB = ref new A::B(bTest); // Throws an exception 

Попытка создать объект типа B из C# модуля в C++ будет сгенерировано исключение, с несколько загадочным «WinRT преобразования ошибок» шоу в журнале вывода.

Чтобы исправить это, я был в состоянии сделать то, что предложил DRapp и добавить конструктор по умолчанию B:

// C# file exported to .winmd class library for use in metro app 
namespace A 
{ 
    public sealed class B 
    { 
     public B() 
     {} 
     public B(bool bTest) 
     {} 

     // Other methods/members... 
    } 
} 

Больше не исключение. :)