connectionStrings
구성 파일에서 액세스하려고 합니다. 코드는 ASP.NET + C #입니다. System.Configuration
참조에 추가 하고 사용에 대해서도 언급했습니다. 그러나 여전히 어셈블리를 수락하지 않습니다.
VSTS 2008을 사용하고 있습니다. 이유가 무엇인지 아십니까?
또 다른 이상한 점은 “System.configuration”으로 표시되는 어셈블리 이름입니다. 소문자 c는 다른 시스템 어셈블리의 이름이 표시되는 방식이 아닙니다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
namespace Utility
{
public class CommonVariables
{
public static String ConnectionString
{
get { return ConfigurationManager.ConnectionStrings["EmployeeEntities"].ConnectionString; }
}
}
}
구성 :
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="qbankEntities" connectionString="metadata=res://*/qbankModel.csdl|res://*/qbankModel.ssdl|res://*/qbankModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=qbank;Persist Security Info=True;User ID=**;Password=****;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" />
</connectionStrings>
</configuration>
답변
namespace 를 사용할 필요는 없습니다 System.Configuration
. 당신은에 대한 참조를 추가 할 수도 있습니다 조립 System.Configuration.dll
에 의해,
- 참조 / 종속성을 마우스 오른쪽 버튼으로 클릭하십시오.
- 참조 추가를 선택 하십시오.
- 찾아서 추가하십시오
System.Configuration
.
이것은 확실히 작동합니다. 또한 NameValueCollection
다음을 작성해야합니다.
using System.Collections.Specialized;
답변
프로젝트에서 참조 추가 …를 마우스 오른쪽 단추로 클릭 하고 .NET 탭에서 System.Configuration
구성 요소 이름을 찾고 확인을 클릭하십시오.
using System.Configuration
컴파일러 / IntelliSense가 해당 네임 스페이스에서 사용하는 클래스를 검색하도록 지시합니다. 그렇지 않으면 System.Configuration.ConfigurationManager
매번 전체 이름 ( ) 을 사용해야합니다 . 그러나 참조를 추가하지 않으면 해당 네임 스페이스 / 클래스를 찾을 수 없습니다.
DLL은 네임 스페이스를 가질 수 있으므로 파일 System.Configuration.dll
은 이론적으로 네임 스페이스를 가질 수 있습니다 Some.Random.Name
. 명확성 / 일관성을 위해 일반적으로 동일하지만 예외가 있습니다.
답변
좋아. VSTS를 다시 시작한 후에 작동했습니다. 링크는 같은 문제에 대한 솔루션을 제안했다. 내가 전에 그것을 볼 수 있었으면 좋겠다. 🙂
답변
System.Configuration
모든 프로젝트에 참조를 추가하면 이 문제가 해결됩니다.
-
Project
->로 이동Add Reference
-
표시되는 상자
All assemblies
에서 왼쪽 목록 의 목록 탭을 클릭하십시오 . -
중앙 목록에서 스크롤
System.Configuration
하여 상자가 선택되어 있는지 확인하십시오. -
적용하려면 확인을 클릭하십시오. 이제
ConfigurationManager
수업 에 액세스 할 수 있습니다 .
답변
제안 된 솔루션 중 어느 것도 나를 위해 작동하지 않으므로이 답변을 추가하십시오.
- 참조 탭을 마우스 오른쪽 버튼으로 클릭하여 참조를 추가하십시오.
- 어셈블리 탭을 클릭하십시오
- ‘System.Configuration’을 검색하십시오.
- 확인을 클릭하십시오.
답변
당신이 많은 경고를 받고 있다면 (내 경우에는 솔루션의 64)!
CS0618 : ‘ConfigurationSettings.AppSettings’는 더 이상 사용되지 않습니다 : ‘이 방법은 더 이상 사용되지 않으며 System.Configuration! System.Configuration.ConfigurationManager.AppSettings로 대체되었습니다.’
이전 프로젝트를 업그레이드하기 때문에 다음과 같이 많은 시간을 절약 할 수 있습니다.
- 참조 섹션에
System.Configuration
참조로 추가 하십시오. -
using
각 클래스 (.cs
) 파일 의 맨 위에 다음 두 명령문을 추가 하십시오.using System.Configuration;
using ConfigurationSettings = System.Configuration.ConfigurationManager;
이 변화에 의해 모든 발생
ConfigurationSettings.AppSettings["mySetting"]
이제 더 이상 사용되지 않는 올바른 구성 관리자를 참조하고 모든 CS0618 경고가 즉시 사라집니다.
물론 이것은 빠른 해킹입니다. 장기적으로 코드 리팩토링을 고려해야합니다.
답변
이 문제에 대한 더 나은 해결책을 얻었습니다 configurationmanager does not exist in the current context
.
연결 문자열을 읽으려면 클래스와 해당 메소드 web.config
를 사용해야 ConfigurationManager
합니다. 사용하려면 System.Configuration
;를 사용하여 네임 스페이스를 추가해야합니다 .
이 네임 스페이스를 사용했지만 ConfigurationManager
클래스 를 사용하려고 하면 시스템에 “현재 컨텍스트에 구성 관리자가 없습니다”라는 오류가 표시됩니다. 이 문제를 해결하려면
ConfigurationManager.ConnectionStrings["ConnectionSql"].ConnectionString;