Невозможно получить логическое значение из проекта VB. NET в проекте C# - PullRequest
0 голосов
/ 18 июня 2020

Я создал проект на VB. NET, который использует dll в C#. Я хочу получить логическую переменную из My.settings в проекте VB. NET в проект C#. Возможно ли это?

Вот код C#, который я хочу:

if (//the code to get My.settings)
{
    tv.ExpandAll();
}

Вот мой самодельный код (не работает):

if ((string)(Variables.GetVar("AutoExpand")) == "True") //Variables is another DLL i made to store temp variables
{
    tv.ExpandAll();
}

Вот код DLL переменных:

Public Class Variables

    Shared ActiveJSON As String
    Shared AutoExpand As String

    Shared Function SetVar(ByVal var As String, ByVal value As String)
        If var = "ActiveJSON" Then
            ActiveJSON = value
            Return True
            Exit Function
        End If
        If var = "AutoExpand" Then
            AutoExpand = var
            Return True
            Exit Function
        End If
        Return False
    End Function

    Shared Function GetVar(ByVal var As String)
        If var = "ActiveJSON" Then
            Return ActiveJSON
            Exit Function
        End If
        If var = "AutoExpand" Then
            Return AutoExpand
            Exit Function
        End If
        Return False
    End Function

End Class

Кто-нибудь может мне помочь?

1 Ответ

3 голосов
/ 18 июня 2020

Язык не имеет значения. Библиотека не может получить настройки из приложения, используя My.Settings в VB или Properties.Settings.Default в C#. Если библиотеке необходимо считывать настройки из приложения, вам следует использовать раздел appSettings файла конфигурации, и тогда любая библиотека, загруженная приложением, может использовать класс Configuration для чтения этих значений.

Для Например, если вы включили это в свой файл App.config или Web.config:

<appSettings>
    <add key="SettingName" value="SettingValue" />
</appSettings>

, вы можете сделать это в библиотеке:

var settingValue = System.Configuration.Configuration.AppSettings["SettingName"];

Обратите внимание, что ваши значения My.Settings также хранятся в файле конфигурации, поэтому вы можете получить к ним доступ, но нет специального механизма через класс Configuration, поэтому он более трудоемок. По сути, эти настройки не предназначены для использования библиотеками.

...