BobbyStrain Ответов: 2

Пройти несколько переменных из C# DLL для вызова приложения c#


Сначала я попытался использовать общедоступное свойство array и вызвать его из вызывающего приложения. Не могу найти способ сделать это. Каков самый простой способ добиться передачи кратного числа значений, генерируемых в библиотеке dll? Я знаю, что могу сгенерировать строку в dll с переменными, разделенными запятой, а затем создать массив из этого в вызывающей программе. Есть ли более прямой метод?

Что я уже пробовал:

Я попытался использовать свойство массива в dll без успеха.

2 Ответов

Рейтинг:
9

OriginalGriff

Тот факт, что это DLL, не имеет значения - процедура одинакова независимо от того, где находится класс, содержащий данные.
Остановитесь и подумайте о данных, которые вы хотите передать, и о том, как бы вы с ними справились, если бы они были в одной сборке. Разработайте, как вы это сделаете там, и это то же самое решение для класса в DLL - все, что вам нужно сделать, это добавить ссылку на DLL в свой проект, и using заявление на исходный файл, чтобы открыть его.
Тогда это точно то же самое: доступ к статическим данным осуществляется через имя класса, к данным экземпляра-через экземпляр созданного вами класса:

public class InTheDLL
    {
    public static string[] StaticArrayOfStrings { get { ... } set { } }
    public List<MyClass> Items { get{ ...} set { } }
    }


string[] strings = InTheDLL.StaticArrayOfStrings;
InTheDLL instance = new InTheDLL();
List<MyClass> collection = instance.Items;
Вы можете возвращать все, что угодно, включая несколько свойств, кортежи, все, что требуется для ваших данных.


BobbyStrain

Грифф,
Я был настолько сосредоточен на правильном синтаксисе, что забыл, что метод в библиотеке требует одного параметра. Как только я это исправил, все стало хорошо. Спасибо за вашу помощь. С этим кусочком я считаю, что на данный момент я закончил свой проект.

OriginalGriff

Молодец! :большой палец вверх:

Рейтинг:
0

Dave Kreskowiak

Существует множество способов сделать это, но вы упустили все важные детали в своем описании, поэтому невозможно сказать, что более уместно.

Вы можете вернуть массив, ArrayList, список, List<t>, структуру, предназначенную для одновременного переноса нескольких различных типов, или экземпляр класса, который содержит значения в свойствах.
Вы можете возвращать значения переменной, вызывающей метод, и передавать переменные по ссылке.

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