ASP.NET 3.5 응용 프로그램을 만들고 있는데 WebMethods에서 매개 변수로 사용하지 않고 WebService 클래스에있는 열거 형을 노출하고 싶습니다. WebMethod에서 Enum을 사용하지 않고 WebService의 클라이언트 JavaScript에 Enum을 노출합니까?
나는 이제 나는 다음과 WebService에 있다고 가정 해 봅시다 ... 내가 원하는 걸 설명하기 정말 간단한 예제를 가지고 (나는 Agent.asmx 그것을 전화 할게) :<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class Agent
Inherits System.Web.Services.WebService
<WebMethod(EnableSession:=True)> _
Public Function DoSomething(ByVal doWhat As WhatEnum) As Boolean
Return ...
End Function
End Class
Public Enum WhatEnum
AskStackOverflowQuestion
PhoneAFriend
FiftyFifty
End Enum
내가 하나에 열거를 사용하기 때문에
if (typeof(SomeNamespace.WhatEnum) === 'undefined') {
SomeNamespace.WhatEnum = function() { throw Error.invalidOperation(); }
SomeNamespace.WhatEnum.prototype = { AskStackOverflowQuestion: 0,PhoneAFriend: 1,FiftyFifty: 2}
SomeNamespace.WhatEnum.registerEnum('SomeNamespace.WhatEnum', true);
}
지금 내가 가서 내가 원하는 곳이 열거 형을 사용할 수 있습니다 : WebService에가 (http://localhost/Agent.asmx/js)에서 내 .aspx 페이지에서 참조 할 때 에이전트에 대해 생성의 웹 메쏘드, 그것은 출력 자바 스크립트에 다음과 같은 것 클라이언트 쪽. 이제 괜찮습니다.하지만 에이전트의 자바 스크립트에서 자동으로 노출되기를 원하는 WebMethod에는 실제로 사용하지 않는 Enum이 있습니다. 그것이 포함될 수있는 방법이나 속성이 있습니까?
그렇지 않은 경우 내 폴백 솔루션은 내 Enum을 매개 변수로 사용하여 더미 메서드를 만든 다음 JS에서 코드를 호출하지 않기 때문에 코드를 낭비하지 않을 것입니다. 감사!
enum이 서비스에 사용되었습니다. 직렬화되어 JSON으로 반환되는 클래스의 속성으로 클라이언트에 전달됩니다. –
더미 메서드를 사용하여 모든 작업을 수행하기로 결정했습니다. 구현하는 것이 가장 힘들었습니다. –