Я создаю приложение ASP.NET 3.5 и хотел бы представить перечисление, которое есть в моем классе WebService, без использования его в качестве параметра в одном из моих методов WebMethods.
У меня есть очень простой пример, иллюстрирующий то, что я хочу ... Допустим, у меня есть следующий 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
Поскольку я использовал Enum в одном из WebMethods, он будет выводить следующее в JavaScript для генерации для Агента, когда WebService будет указан на моей странице .aspx (от http://localhost/Agent.asmx/js):
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);
}
Теперь я могу пойти и использовать эти перечисления где угодно на стороне клиента. Теперь все в порядке, но у меня есть еще один Enum в моем Агенте, который я на самом деле не использую ни в одном из WebMethods, который я также хотел бы автоматически отображать в JavaScript агента. Есть ли способ, возможно, атрибут или что-то, что я мог бы использовать, чтобы включить его?
Если нет, то мое запасное решение состоит в том, чтобы просто создать фиктивный метод с моим Enum в качестве параметра, чтобы он был доступен, и просто никогда не вызывать его из JS, хотя я бы предпочел не засорять код. Спасибо!