2009-02-25 7 views
3

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.

Antwort

4

Haben /// <reference path="../Services/DocLookups.svc" /> nicht funktioniert?

+0

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. –

+0

/// ..... wäre das nicht nett! – BozoJoe

+0

Der Verweis auf die Servicedatei mit der MicrosoftAjax.js-Referenz ist anscheinend auch in VS2010 erforderlich. Ich konnte das nirgendwo dokumentiert finden! – BrianFinkel

0

Dank Scott für den Hinweis auf, dass ich die

///<reference path... 

Linie hinzufügen müssen. Ich weiß nicht, wo es dokumentiert ist, aber irgendwie habe ich verpasst, dass dies für die WCF-generierten clientseitigen Proxies erforderlich war - obwohl es sinnvoll ist, jetzt dasselbe Idiom zu verwenden, um das Intellisense für JQuery zu erhalten.

Für die Aufzeichnung, die Linie, die ich am Ende verwenden musste, war etwas anders als das, was Scott vorgeschlagen, meine Projektstruktur gegeben. Ich habe versucht:

/// <reference path="../Documents/Services/DocLookups.svc" /> 

ich dann die Datei gespeichert und aus dem VS Menü Bearbeiten wählte Intellisense ... aktualisieren JScript Intellisense ...

Leider ist dies nicht funktionierte, und ich bekam die folgende Fehlermeldung, wenn die Intellisense Aktualisierung:

Error updating JScript IntelliSense: 
C:\TFSSource\LitigationPortal\Version 1.0\LitigationPortal\Documents\Services\DocLookups.svc: 
'Type' is undefined @ 0:0 

Also habe ich einige Fortschritte gemacht, aber ich bin noch nicht so weit.

Verwandte Themen