【问题标题】:Access MySettings from other Project in Solution从解决方案中的其他项目访问 MySettings
【发布时间】:2011-03-10 13:42:42
【问题描述】:

是否可以访问当前项目中引用的其他 DLL 的My.Settings?我有一个数据库项目,其中存储了 ConnectionString 的设置。我需要在其他项目(用于日志文件)中访问此设置。

【问题讨论】:

    标签: c# vb.net visual-studio .net-3.5 settings


    【解决方案1】:

    您是否尝试过查看 System.Configuration.ConfigurationManager 之类的内容,我知道它适用于 Web 应用程序,但不确定数据库项目。

    然后您可以使用如下命令获取连接字符串:

    ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
    

    http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.aspx

    【讨论】:

    • 我的数据库项目是一个类库。关键是我不知道如何从不同的 ddl 访问它的 AppSettings。我使用返回它的公共函数的解决方法有效。我认为不可能从另一个 dll 访问 AppSettings(.Net 2.0 中的 My.Settings)(可能是出于安全考虑)。
    • 我已经尝试过没有成功:knowdotnet.com/articles/accessappconfigfromdll.html(部分什么都没有,所以我得到了 NullReferenceException)
    • 嗨蒂姆,我认为您应该能够以与您的答案类似的方式从 DLL 中公开您的设置,但是您是否考虑过可能只是针对您的 EXE 设置您的设置?这是一个很好的理由; stackoverflow.com/questions/594298/c-dll-config-file/…
    【解决方案2】:

    我通过 Database-Project 中的一个类帮助自己,该类具有 getAppSetting 函数:

    Public NotInheritable Class Helper
       Private Sub New()
       End Sub
    
       Public Shared Function getAppSetting(ByVal key As String) As String
           Dim returnValue As Object = My.Settings(key)
           If returnValue Is Nothing Then
               Return String.Empty
           Else
               Return returnValue.ToString
           End If
       End Function
    End Class
    

    我可以从我的其他项目中调用这个函数来获取 f.e.连接字符串。

    【讨论】:

    • 最好将设置传递给另一个程序集。这消除了两个程序集之间的依赖关系,并允许您在需要时更改数据库项目的实现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    相关资源
    最近更新 更多