source

App_Code에 있는 클래스에 액세스할 수 없습니다.

manycodes 2023. 5. 6. 15:14
반응형

App_Code에 있는 클래스에 액세스할 수 없습니다.

저는 ASP에 웹사이트를 만들었습니다.NET 및 클래스를 만들어 App_Code 폴더 안에 넣습니다.그러나 다른 페이지에서는 액세스할 수 없습니다.이를 허용하기 위해 무언가를 구성해야 합니까?저는 이전 프로젝트에서는 성공했지만, 이번 프로젝트에서는 성공하지 못했습니다.

namespace CLIck10.App_Code
{
    public static class Glob
    {
        ...
    }
}

마우스 오른쪽 버튼을 클릭.cs에 철하다.App_Code폴더를 만들고 속성을 확인합니다.

빌드 작업이 "컴파일"로 설정되어 있는지 확인합니다.

클래스에 액세스할 다른 파일의 맨 위에 이를 놓습니다.

using CLIck10.App_Code;

또는 다음과 같은 다른 파일에서 클래스에 액세스합니다.

CLIck10.App_Code.Glob

그것이 당신의 문제인지 아닌지 확신할 수 없지만 만약 당신이 C#을 처음 알았다면 이것은 걸려들기 쉬운 문제입니다.

업데이트: 최근에 프로젝트에 App_Code 폴더를 추가할 경우 Visual Studio를 닫거나 다시 열어야 이 "특수" 폴더를 제대로 인식할 수 있다는 것을 알게 되었습니다.

App_code 클래스에 액세스할 페이지로 이동한 다음 app_code 클래스의 네임스페이스를 추가합니다.다음을 제공해야 합니다.using다음과 같은 문장:

using WebApplication3.App_Code;

그런 다음 app_code 클래스 속성으로 이동하여 'Build Action'을 'Compile'로 설정해야 합니다.

왜 이런 일이 일어나는지 아직은 모르지만, 저는 제 수업에 있었던 수업들이 있었습니다.App_Code서로 메소드를 호출하는 폴더이며, 내가 a를 구축했을 때 이 작업을 수행하는 데 문제가 없었습니다.NET 4.5.2 프로젝트는 대상 서버가 업그레이드되지 않아 4.0으로 되돌려야 했습니다.그때 (수리 후) 이 문제를 발견했습니다.langversion내 web.config에서 6시부터 5시까지...다른 이야기)...

제 방법 중 하나에 다음과 같은 오류가 계속 발생했습니다.

The type X.Y conflicts with the imported type X.Y in MyProject.DLL

모든 클래스가 여기서 수락된 답변에 제안된 대로 속성에서 이미 "컴파일"로 설정되었으며, 각 클래스는 동일한 공통 네임스페이스를 가지고 있으며, 각 클래스는using MyNamespace;각 반에서 1등으로

서로 메서드를 호출해야 하는 문제가 있는 클래스를 "App_Code"가 아닌 다른 표준 폴더로 이동하면 충돌 문제가 발생하지 않습니다.

참고: "AppCode"라는 표준 폴더를 만들고 클래스를 이동한 후 "App_Code" 폴더를 삭제한 후 "AppCode"를 "App_Code"로 이름을 바꾸면 문제가 다시 발생합니다.새 폴더를 사용하든 ASP 추가를 사용하든 상관 없습니다."App_Code"를 만드는 NET Folder" 옵션 - 이름을 입력하는 것 같습니다.

아마 이건 그냥.NET 4.0(및 이전 버전일 수 있음) 문제...저는 4.5.2에서 정상적으로 복귀했습니다!

페이지와 동일한 네임스페이스를 사용하고 있는지 확인합니다.

제 경우 App_Code 폴더에 정의된 클래스로 빌드할 프로젝트를 가져오지 못했습니다.

댓글을 달기 위해 시나리오를 정확하게 복제할 수는 없지만, 인텔리전트가 동의하기 위해 비주얼 스튜디오를 닫았다가 다시 열어야 했습니다.

App_Code 폴더의 클래스가 'Content'가 아닌 'Compile'(오른쪽 클릭)로 설정되어 있으면 해당 클래스의 두 번째 버전에서 오류가 발생한다는 것을 알게 되었습니다.코드 창과 탭 사이의 3개 필드 중 가장 왼쪽을 봅니다.'다른' 것은 10_App_Code 또는 유사한 이름으로 불렸습니다.

문제를 해결하기 위해 폴더 이름을 App_Code에서 Code로 변경하고 클래스에 네임스페이스를 명시적으로 설정하고 모든 클래스를 'Compile'로 설정했습니다.

파일을 웹 더 것을 .using파일의 섹션입니다.어떤 이유에서인지 다른 해결책은 저에게 효과가 없었지만, 이 문제에 대한 해결책은 효과가 있었습니다.

이전 프로젝트에 추가하기 위해 최신 버전의 Visual Studio를 사용하고 "웹 양식 추가"를 사용했습니다.App_Code에 클래스가 있는데, 어떤 이유에서인지 해당 페이지에서만 액세스할 수 없었습니다.저는 클래스를 "컴파일"로 변경하려고 시도했는데, 갑자기 프로젝트의 나머지 부분에서 클래스가 여러 곳에 있는 것에 대해 불평했습니다. 그렇지 않습니다(3_Whating과 같은 숫자도 처음에 있습니다).

프로젝트 파일을 언로드하고 수동으로 편집했더니 속성 창에 "Content"라고 표시되어 있었지만 지침은 "Compile"이었습니다.또한 다른 모든 것이 가지고 있는 서브타입을 추가하지 않았습니다.마지막으로, aspx 페이지에는 "CodeFile" 대신 "CodeBehind"가 있었는데, 제가 변경해야 하는지 여부는 확실하지 않지만 적어도 지금은 나머지와 같습니다!

<Content Include="MyFile.aspx.cs">
  <DependentUpon>MyFile.aspx</DependentUpon>
  <SubType>ASPXCodeBehind</SubType>
</Content>

이제 모든 것이 작동합니다.

언급URL : https://stackoverflow.com/questions/1222281/classes-residing-in-app-code-is-not-accessible

반응형