2009-12-11 2 views
0

CodeBehind 파일과 마스터 페이지를 사용하는 VS 2008로 작성된 ASP.NET (C#) 응용 프로그램이 있습니다. 또한 동일한 네임 스페이스에 다른 클래스와 확장 메서드가 모두 있습니다. 이제 어떤 페이지에서 내 클래스와 메서드는 < % = MyClass.MyMethod(). ExtensionMethod() %>와 같은 인라인 코드에서 정의되지 않습니다. < % = MyNamespace.MyClass.MyMethod() %>를 쓸 수는 있지만, 불필요하게 길어지고 2. 확장 메서드를 사용할 수 없습니다. 대부분의 페이지에서 작동하지만 일부에서는 작동하지 않습니다.ASP.NET 인라인 코드에서 내 클래스를 사용할 수없는 이유는 무엇입니까?

IntelliSense없이 IntelliSense 형식으로 코드를 작성할 수 있지만 제대로 컴파일되지만 페이지에 액세스 할 때 클래스/메서드가 정의되지 않았 음을 알리는 HttpCompiler 예외가 throw됩니다. 그것은 "사용"또는 참조를 추가 할 것을 제안합니다. 하지만 코드 뷰에서 .aspx 페이지에 "[네임 스페이스] 사용"을 어떻게 삽입해야합니까? 이것은 HTML 코드가 아닌 C# 코드에서만 사용 가능합니다. 그리고 동일한 네임 스페이스에서도 같은 프로젝트에 있기 때문에 참조가 필요하지 않습니다.

누군가가 왜 때때로 작동하지 않는지 알고 있습니까? 어떤 이유에서 전부 문제를 찾고 어디서부터 시작 난 ... 해결책은 말할 것도없고,

답변

4
<%@ Import Namespace="Namespace.Containing.ExtensionMethod" %> 

를 모르는 또는 당신은 당신이 웹을 사용할 수있는 모든 페이지에 전 세계적으로 적용 할 경우 .config :

<pages> 
    <namespaces> 
    <add namespace="Namespace.Containing.ExtensionMethod"/> 
    </namespaces> 
</pages> 
+0

감사합니다. 가져 오기 작업이 트릭을 만들었습니다. 하지만 일부 페이지에서는이 기능이 작동하지 않는 이유는 무엇입니까? – ygoe

관련 문제