Я наконец-то заставил Intellisense работать на JQuery, применив исправление KB958502 к Visual Studio 2008 и включив в него следующую строку:
/// <reference path="JQuery\jquery-1.3.2.js"/>
вверху моих файлов .js. Теперь я пытаюсь выяснить, как получить IntelliSense для JavaScript для клиентских прокси, сгенерированных элементами ScriptReference ScriptManager (как показано здесь):
<asp:ScriptManager ID="ScriptManager1" runat="Server" EnablePartialRendering="false" AsyncPostBackTimeout="999999">
<Services>
<asp:ServiceReference path="../Services/DocLookups.svc" />
</Services>
</asp:ScriptManager>
Клиентские прокси работают - т.е. я могу звонить через них, но я не получаю Intellisense.
Мой сервис определен с помощью файла .svc:
<%@ ServiceHost Language="C#" Debug="true" Service="Documents.Services.DocLookups" CodeBehind="~/App_Code/DocLookups.cs" %>
Код файла выглядит так:
[ServiceContract(Namespace = "Documents.Services", Name = "DocLookups")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class DocLookups {
...
пример метода в этом классе:
//Called at the begining of the page to fill in the category list
[OperationContract]
public SelectOption[] GetCategoriesForSelectList()
{
SelectOption[] Result;
IDocumentRepository repository = new DocumentEntityRepository(ConnectionString);
Result = (from cat in repository.GetDocCategories()
select new SelectOption(cat.Category_ID.ToString(), cat.CategoryName)).ToArray();
if (Result.Length > 0)
Result[0].Selected = true; //Select first item
return Result;
}
и использует контракт данных, определенный следующим образом:
namespace Documents.Services {
[DataContract]
public class SelectOption
{
//A useful DTO to use when filling a <select> element with options
public SelectOption(string optionValue, string optionText) {
OptionValue = optionValue;
OptionText = optionText;
Selected = false;
}
public SelectOption(string optionValue, string optionText, bool selected) {
OptionValue = optionValue;
OptionText = optionText;
Selected = selected;
}
[DataMember]
public string OptionValue { get; set; }
[DataMember]
public string OptionText { get; set; }
[DataMember]
public bool Selected { get; set; }
}
} * * тысяча двадцать-один
В моих файлах javascript вызов этой службы выглядит так:
Documents.Services.DocLookups.GetCategoriesForSelectList(...
но я не получаю Intellisense (например, если я набираю Documents. Ничего не появляется). Я не получаю intellisense ни для сгенерированных методов, ни для типов [DataContract], используемых методами.
Я считаю, что я должен получить Intellisense для этих прокси и типов, но не могу понять, что я могу делать неправильно. ТИА.