简体   繁体   English

超载解析失败,因为无法访问“项目”

[英]Overload resolution failed because no 'item' is accessible

I don't know why I am getting this error in my custom class 我不知道为什么在自定义类中遇到此错误

Overload resolution failed because no 'item' is accessible" on line 15 and 16. To see the code follow the link 重载解析失败,因为第15和16行上没有“ item”。要查看代码,请点击链接

Imports System.Configuration

Public Class AppSettings 
  Private config As Configuration

  Public Sub AppSetting()
    config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
  End Sub

  Public Function GetConnectionString(ByVal key As String) As String
    Return config.ConnectionStrings.ConnectionStrings(key).ConnectionString
  End Function

  Public Sub SaveConnectionString(ByVal key As String, ByVal value As String)
    config.ConnectionStrings(key).ConnectionString = value
    config.ConnectionStrings(key).ProviderName = "MySql.Data.MySqlClient"
    config.Save(configurationSaveMode.Modified)
  End Sub
End Class

You are missing a .ConnectionStrings between config and .ConnectionStrings(key) as you correctly have in your GetConnectionString method: 您缺少在config.ConnectionStrings(key)之间的.ConnectionStrings ,就像您在GetConnectionString方法中正确使用的那样:

config.ConnectionStrings.ConnectionStrings(key).ConnectionString = value
config.ConnectionStrings.ConnectionStrings(key).ProviderName = "MySql.Data.MySqlClient"

But you could use a temporary variable to simplfy 但是您可以使用一个临时变量来简化

Dim connString = config.ConnectionStrings.ConnectionStrings(key)
connString.ConnectionString = value
connString.ProviderName = "MySql.Data.MySqlClient"

or using a With statement 或使用With陈述式

With config.ConnectionStrings.ConnectionStrings(key)
    .ConnectionString = value
    .ProviderName = "MySql.Data.MySqlClient"
End With

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM