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
서로 폴더에서 메서드를 호출하는 클래스가 있었으며 .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;
있으며 각 클래스 는 동일한 공통 네임 스페이스를 가지며 각 클래스의 최상위에 있습니다.
서로의 메서드를 호출해야하는 문제가있는 클래스를 “App_Code”이외의 다른 표준 폴더로 옮기면 충돌 문제가 발생하지 않습니다.
참고 : “AppCode”라는 표준 폴더를 작성하고 클래스를 해당 폴더로 이동하고 “App_Code”폴더를 삭제 한 다음 “AppCode”의 이름을 “App_Code”로 바꾸면 문제가 다시 발생합니다. “App_Code”를 만들기 위해 “새 폴더”또는 “ASP .NET 폴더 추가”옵션을 사용하더라도 문제가되지 않습니다. 이름을 입력하는 것 같습니다.
어쩌면 이것은 .NET 4.0 (그리고 이전의) 문제 일 것입니다 … 4.5.2에서는 되돌릴 필요가 없었습니다!
답변
파일을 별도의 클래스 라이브러리 프로젝트로 옮긴 다음 웹 프로젝트에서 해당 프로젝트를 참조 using
하고 파일 섹션에 네임 스페이스를 적용하는 것이 더 쉽다는 것을 알았습니다 . 어떤 이유로 다른 솔루션이 나를 위해 작동하지 않았지만이 해결 방법이 도움이되었습니다.
답변
필자의 경우 App_Code 폴더에 정의 된 클래스로 빌드 할 프로젝트를 얻을 수 없었습니다.
의견을 제시하기 위해 시나리오를 정확하게 복제 할 수는 없지만 협력을 위해 인텔리전스를 위해서는 Visual Studio를 닫았다가 다시 열어야했습니다 …
App_Code 폴더의 클래스가 ‘Content’대신 ‘Compile’로 설정되면 (오른쪽 클릭) 오류가 클래스의 두 번째 버전에서 발생했다는 것을 알았습니다. 코드 창과 탭 사이의 3 개 필드 중 3 개 ‘다른’것은 10_App_Code 또는 이와 유사한 줄을 따라 무언가라고 불렀습니다.
문제를 해결하기 위해 폴더 이름을 App_Code에서 Code로 바꾸고 클래스의 네임 스페이스를 명시 적으로 설정하고 모든 클래스를 ‘Compile’로 설정했습니다.