2009-06-18 4 views
1

웹 참조를 추가하지 않고 ASP.NET의 인라인 코드 블록에서 웹 서비스를 호출 할 수 있습니까? 그렇다면 지침을 제공 할 수 있습니까?asp.net 인라인 코드 블록의 웹 서비스 호출

+0

코드 비하인드에서 서비스를 호출하는 것이 다른 이유는 무엇입니까? 그것을 시도하고 문제가 있었습니까? 그렇다면 질문을 편집하여 문제가 무엇인지 말하십시오. –

+0

웹 참조를 추가하지 않고 어떻게하는지 모르겠습니다. –

+0

그리고 왜 웹 참조를 추가하지 않습니까? 뭐가 문제 야? –

답변

1

추가가 포함 다른 C# 프로젝트 (예 : 콘솔 응용 프로그램)의 웹 참조 그런 다음 "모든 파일 표시"로 전환하십시오. 생성 된 실제 웹 서비스 프록시가 포함 된 숨겨진 .cs 파일을 찾을 수 있습니다. (같은 일을하는 명령 줄 도구가 있지만 이름을 잊어 버렸습니다.)

.aspx에 생성 된 클래스를 <script runat="server"> 블록으로 복사 할 수 있습니다.

실제로 필요한 것이 무엇인지 모르겠지만 웹 앱의 소스 코드에 액세스 할 수 없습니까?

또 다른 해결 방법은 웹 프록시 용 .NET DLL을 만든 다음 Assembly.Load()을 사용하여이 어셈블리를 동적으로로드하는 것입니다. 메소드를 동적으로 호출하는 것은 그리 좋지 않습니다.

+0

-1 생성 된 파일의 조작을 제안하는 것 (복사 포함). –

+0

그의 방법은 명령 줄 도구를 실행하기위한 지름길이었습니다. 그것은 해결책이었고, 내가 가진 요구 사항으로 해결할 수있는 유일한 방법이었습니다. –

1

일반적으로 인라인 코드는 코드 뒤에있는 코드로 무엇이든지 할 수 있습니다. 코드 숨김 코드는 파일을 깨끗하게 처리하고 파일을 구분합니다.

WebService 프록시를 만들 때 생성 된 적절한 네임 스페이스를 먼저 포함시켜야합니다.

네임 스페이스는 코드가 여기에 인라인 코드의 경우 조금 다른 당신이 차이 코딩 공포에 대해 읽어하고자하는 경우 예를 들어

<%@ Import Namespace="System.IO" %> 

입니다 그것에 대해 great article

0

웹 서비스의 코드 파일 (* .cs)이 App_Code 폴더에있는 경우에는 참조 등을 사용할 필요가 없습니다. 그러나 웹 서비스가 프로젝트에 로컬이 아니면 App_Code 폴더의 별도 .cs 파일에 코드가 없으면 웹 참조가 필요합니다.

<%= new MyWebService().MyWebMethod(); %> 

는 희망이 도움이 : 내 경험에서, 그리고 난 그냥 같은 내 웹 서비스의 웹 방법 중 하나를 사용했다

.