Ich habe endlich Intellisense für JQuery Arbeiten von Patch KB958502 zu Visual Studio 2008 die Anwendung und einschließlich dieser Linie:Wie bekomme ich Intellisense für WCF Ajax Services?
/// <reference path="JQuery\jquery-1.3.2.js"/>
an der Spitze meiner Js-Dateien. Jetzt versuche ich, um herauszufinden, wie JavaScript Intellisense für die Client-Proxies durch die Script Elemente der Script erzeugt zu bekommen (wie hier dargestellt):
<asp:ScriptManager ID="ScriptManager1" runat="Server" EnablePartialRendering="false" AsyncPostBackTimeout="999999">
<Services>
<asp:ServiceReference path="../Services/DocLookups.svc" />
</Services>
</asp:ScriptManager>
Die Client-Proxies arbeiten - dh ich Anrufe durch sie machen können , aber ich bekomme kein Intellisense.
Mein Service ist mit einer SVC-Datei definiert:
<%@ ServiceHost Language="C#" Debug="true" Service="Documents.Services.DocLookups" CodeBehind="~/App_Code/DocLookups.cs" %>
Der Code hinter Datei wie folgt aussieht:
//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;
}
:
[ServiceContract(Namespace = "Documents.Services", Name = "DocLookups")]
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class DocLookups {
...
eine Probe Methode in dieser Klasse ist und es verwendet einen Datenvertrag, der wie folgt definiert ist:
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; }
}
}
In meinen Javascript-Dateien, ein Aufruf diesen Dienst wie folgt aussieht:
Documents.Services.DocLookups.GetCategoriesForSelectList(...
aber ich kein Intellisense (zum Beispiel erhalten, wenn ich Dokumente eingeben. nichts erscheint). Ich erhalte weder für die generierten Methoden noch für die [DataContract] -Typen, die von den Methoden verwendet werden, Intellisense.
Ich glaube, ich bin angenommen Intellisense für diese Proxies und Typen zu bekommen, aber kann nicht herausfinden, was ich falsch machen könnte. TIA.
Es anfangs nicht funktionierte, wie ich in meinem Beitrag erwähnt, aber es DID arbeiten, sobald ich merkte, dass ich es mit einem Verweis auf MicrosoftAjax.js voranstellen musste /// /// Also danke für die Hilfe. –
/// ..... wäre das nicht nett! –
BozoJoe
Der Verweis auf die Servicedatei mit der MicrosoftAjax.js-Referenz ist anscheinend auch in VS2010 erforderlich. Ich konnte das nirgendwo dokumentiert finden! – BrianFinkel