2010-08-10 7 views
0

디자이너의 Visual Studio에서 MainForm을 열려고하면이 오류가 Visual Studio의 디자이너 대신 표시됩니다.응용 프로그램 구성 파일의 SubSonicService 섹션을 찾을 수 없습니다.

그것은 전에 일한 응용 프로그램 설정 파일

at System.ComponentModel.ReflectPropertyDescriptor.SetValue(Object component, Object value) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializePropertyAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement, CodePropertyReferenceExpression propertyReferenceEx, Boolean reportError) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeAssignStatement(IDesignerSerializationManager manager, CodeAssignStatement statement) 
at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.DeserializeStatement(IDesignerSerializationManager manager, CodeStatement statement) 

의 SubSonicService 섹션을 찾을 수 없습니다 및 기타 양식/컨트롤의 많은 프로젝트에있다 그리고 그들은 작동합니다. 또한 프로젝트를 빌드하고 아무런 문제없이 실행할 수 있습니다. 디자이너 일뿐입니다.

내 app.config에는 SubSonic 섹션이 있으며 이전에는 작동 했으므로 변경되지 않았습니다.

Visual Studio 2005와 C#을 SubSonic 2와 함께 사용하면 전환 할 수 없습니다. 기존 프로젝트입니다.

어떻게 해결할 수 있습니까?

답변

0

메인 폼 또는 다른 사용자 지정 컨트롤의 생성자에서 아음속 개체를로드하려고 시도한다고 생각합니다. 이것은 디자이너 내에서 작동하지 않는 다른 개체에서 발생하는 일반적인 오류입니다. 나는 창에서 음속 구성의 app.config에 의존하지하는 것이 좋습니다 것이라고 말했다

if (!DesignMode) 
{ 
    Product p = new Product(1); 
} 

프로젝트를 형성 :이 경우를 들어 확인할 수있는 속성 DesignMode있다. app.config를 사용하지 않고 공급자를 subsonic2에 삽입하는 방법에는 여러 가지가 있습니다.

  • 변화하는 연결 문자열 옵션 (다른 호스트/사용자) : 웹 프로젝트에서 은 항상 같은 다른 문제가 전체 프로젝트에 대한하지만 윈도우 폼 응용 프로그램에서 대부분의 설정 옵션을 유지하는 web.config 파일이 아마도 싱글 사인온 (single sign on)을 사용하지 않는다면 app.config에 비밀번호를 저장하고 싶지 않을 것입니다.
  • 클래스 라이브러리에서 아음속을 사용하는 경우 아음속 서비스 섹션을 사용하는 모든 winforms/console 앱에 아음속 서비스 섹션을 추가해야합니다.
  • 런타임 연결이 변경됩니다. 어쩌면 당신은 app과 config.config 파일을 닫지 않고 연결할 수없는 테스트와 프로덕션 DB를 가지고있을 것입니다.

내 대답은 여기를보십시오 : Subsonic: dynamic connections 어떻게하는지.

(코드 내에서가 아니라 원래 페이지가 다운)

이 방법은 나를 위해 마법처럼 작동합니다.