Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 在其他解决方案中加载My.Settings_Vb.net - Fatal编程技术网

Vb.net 在其他解决方案中加载My.Settings

Vb.net 在其他解决方案中加载My.Settings,vb.net,Vb.net,我需要将我的.settings从第一个解决方案加载到第二个解决方案 在第一个项目中,我有一个助手类来获取设置 Public Class format Public NotInheritable Class Helper Private Sub New() End Sub Public Shared Function getAppSetting() As String Dim returnValue As Objec

我需要将我的.settings从第一个解决方案加载到第二个解决方案

在第一个项目中,我有一个助手类来获取设置

Public Class format
    Public NotInheritable Class Helper
        Private Sub New()
        End Sub

        Public Shared Function getAppSetting() As String
            Dim returnValue As Object = My.Settings.format
            If returnValue Is Nothing Then
                Return String.Empty
            Else
                Return returnValue.ToString
            End If
        End Function

        Public Shared Function getAppSettingTheme() As String
            Dim returnValue_theme As Object = My.Settings.theme_selected
            If returnValue_theme Is Nothing Then
                Return String.Empty
            Else
                Return returnValue_theme.ToString
            End If
        End Function
    End Class
End Class
Imports MyProject.format.Helper
MsgBox(getAppSettingTheme())
我在其他解决方案中实现了这个类(即使我有一套)

在其他解决方案中,我有获取设置的代码

Public Class format
    Public NotInheritable Class Helper
        Private Sub New()
        End Sub

        Public Shared Function getAppSetting() As String
            Dim returnValue As Object = My.Settings.format
            If returnValue Is Nothing Then
                Return String.Empty
            Else
                Return returnValue.ToString
            End If
        End Function

        Public Shared Function getAppSettingTheme() As String
            Dim returnValue_theme As Object = My.Settings.theme_selected
            If returnValue_theme Is Nothing Then
                Return String.Empty
            Else
                Return returnValue_theme.ToString
            End If
        End Function
    End Class
End Class
Imports MyProject.format.Helper
MsgBox(getAppSettingTheme())
但在MsgBox中,我看到默认设置(未更改),而在第一个解决方案中显示用户更改的设置


My.Settings我已保存[My.Settings.save]

如果您选择以复杂的方式执行此操作,您需要做的是,在第一个项目中创建类以读取
My.Settings
,然后在另一个项目中引用该项目并使用它

然而,我更愿意描述一种更容易实现目标的方法(尽管上面的方法并不难)

首先,我相信您正在使用
My.Settings
来存储一些数据,对吗?如果是这样,您只需将数据保存到文本文件中,然后从任意位置读取。这将节省大量代码并使其整洁:)

因为你似乎是一个初学者,我会尽量让它尽可能简单,并用最简单的话解释

现在,假设您有4个
My.Settings
条目,如下所示:

用户名

密码

电话

年龄

不要将此数据写入
My.Settings
,而是将其写入文本文件。假设用户输入了相关数据,它看起来有点像:

   If My.Settings.UserName = "Zack" Then
   ......
Zack Rayan

1212121

+090990809809

20

要编写文本文件,只需使用
file.WriteAllText
,但正如我们在这里看到的,我们的数据是多行的,我们可以使用以下内容:

FIle.writeAllines

File.AppendText

好的,让我们使用
File.AppendText
方法(您也可以将下面的代码与
writealText
一起使用:):

这将为您编写一个文本文件,在单独的行中包含给定的数据,并且您将拥有自己的文件扩展名:)

现在,如何使用它

简单:

  Dim ReadFile as New List(Of String)(File.ReadAllLines("C:\Test.mycustomextension"))
现在,让我们假设,当您使用
My.Settings
时,您使用了如下代码:

   If My.Settings.UserName = "Zack" Then
   ......
向上滚动并仔细查看。UserName是您在
My.Settings
中的第一个条目,当我们编写文本文件时,ZACK RAYAN假定的用户名也写在第一行

在上面的几行中,我创建了一个读取文本文件的列表。不用说,它会先读取(并存储)第一行,然后逐渐移动。那么,您使用的是:

 If My.Settings.UserName = "Zack" Then
你现在应该使用:

 If ReadFile(0) = "Zack" Then

我希望这有助于丰富您的知识:)

您想要一个简单的答案还是一个复杂的答案?我会尽我所能。这样你就可以自由地写了。我正在发布一个答案…看看吧。这样,你就可以给你的设置你想要的结构,并从任何项目中读取它们。这个想法对我来说也受到了攻击,但我不想重写整个项目。看来这就是我要做的。谢谢。你不喜欢这个答案吗?我可以发布复杂的方式,包括
My.Settings
,你想要吗?