Condividi tramite


Procedura dettagliata: associazione ai dati di un servizio in un progetto a livello di applicazione

È possibile associare dati ai controlli host nei progetti a livello di applicazione. In questa procedura dettagliata viene illustrato come aggiungere controlli a un documento di Microsoft Office Word, associare i controlli ai dati recuperati da MSDN Content Service e rispondere agli eventi in fase di esecuzione.

Si applica a: le informazioni fornite in questo argomento sono valide per i progetti a livello di applicazione per Word 2007 e Word 2010. Per ulteriori informazioni, vedere Funzionalità disponibili in base ai tipi di progetto e applicazioni di Office.

In questa procedura dettagliata vengono illustrate le seguenti attività:

Nota

Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio.

Prerequisiti

Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:

-

Una versione di Visual Studio 2010 che include gli strumenti per sviluppatori di Microsoft Office. Per ulteriori informazioni, vedere [Configurazione di un computer per sviluppare soluzioni Office](bb398242\(v=vs.100\).md).
  • Microsoft Office Word 2007 o Word 2010. 

Creazione di un nuovo progetto

Il primo passaggio consiste nella creazione di un progetto componente aggiuntivo per Word.

Per creare un nuovo progetto

  • Creare un progetto relativo al componente aggiuntivo per Word denominato MTPS Content Service mediante Visual Basic o C#.

    Per ulteriori informazioni, vedere Procedura: creare progetti di Office in Visual Studio.

    In Visual Studio viene aperto il file ThisAddIn.vb o ThisAddIn.cs e aggiunto il progetto a Esplora soluzioni.

Aggiunta di un servizio Web

Per questa procedura dettagliata, utilizzare un servizio Web denominato MTPS Content Service. Questo servizio Web restituisce le informazioni di un articolo specifico di MSDN sotto forma di stringa XML o testo normale. In un passaggio successivo viene illustrato come visualizzare le informazioni restituite in un controllo del contenuto.

Per aggiungere MTPS Content Service al progetto

  1. Scegliere Aggiungi nuova origine dati dal menu Dati.

  2. Nella Configurazione guidata origine dati, scegliere Servizio, quindi Avanti.

  3. Nel campo Indirizzo, digitare l'URL seguente:

    http://services.msdn.microsoft.com/ContentServices/ContentService.asmx

  4. Fare clic su Vai.

  5. Nel campo Spazio dei nomi, digitare ContentService, quindi scegliere OK.

  6. Nella finestra di dialogo della procedura guidata per l'aggiunta del riferimento, scegliere Fine.

Aggiunta di un controllo del contenuto e di un'associazione ai dati in fase di esecuzione

Nei progetti a livello di applicazione è possibile aggiungere e associare i controlli in fase di esecuzione. Per questa procedura dettagliata, configurare il controllo del contenuto in modo che recuperi i dati dal servizio Web quando un utente esegue una selezione all'interno del controllo.

Per aggiungere un controllo del contenuto ed eseguire associazioni ai dati

  1. Nella classe ThisAddIn dichiarare le variabili per MTPS Content Service, il controllo del contenuto e l'associazione dati.

    Private request As ContentService.getContentRequest
    Private proxy As ContentService.ContentServicePortTypeClient
    Private document As ContentService.requestedDocument()
    Private response As ContentService.getContentResponse
    Private appId As ContentService.appId
    Private WithEvents richTextContentControl As Microsoft.Office.Tools.Word.RichTextContentControl
    Private components As System.ComponentModel.Container
    Private primaryDocumentsBindingSource As System.Windows.Forms.BindingSource
    
    private ContentService.getContentRequest request;
    private ContentService.ContentServicePortTypeClient proxy;
    private ContentService.requestedDocument[] document;
    private ContentService.getContentResponse response;
    private ContentService.appId appId;
    private Microsoft.Office.Tools.Word.RichTextContentControl richTextContentControl;
    private System.ComponentModel.Container components;
    private System.Windows.Forms.BindingSource primaryDocumentsBindingSource;
    
  2. Aggiungere il seguente metodo alla classe ThisAddIn. Questo metodo consente di creare un controllo del contenuto all'inizio del documento attivo.

    Private Sub AddRichTextControlAtRange()
    
        Dim currentDocument As Word.Document = Me.Application.ActiveDocument
        currentDocument.Paragraphs(1).Range.InsertParagraphBefore()
    
        ' Use the following line of code in projects that target the .NET Framework 4.
        Dim extendedDocument As Document = Globals.Factory.GetVstoObject(currentDocument)
    
        ' In projects that target the .NET Framework 3.5, use the following line of code instead.
        ' Dim extendedDocument As Document = currentDocument.GetVstoObject()
    
        richTextContentControl = extendedDocument.Controls.AddRichTextContentControl _
            (currentDocument.Paragraphs(1).Range, "richTextControl2")
        richTextContentControl.PlaceholderText = _
            "Click here to download MSDN Library information about content controls."
    End Sub
    
    private void AddRichTextControlAtRange()
    {
        Word.Document currentDocument = this.Application.ActiveDocument;
        currentDocument.Paragraphs[1].Range.InsertParagraphBefore();
    
        // Use the following line of code in projects that target the .NET Framework 4.
        Document extendedDocument = Globals.Factory.GetVstoObject(currentDocument);
    
        // In projects that target the .NET Framework 3.5, use the following line of code instead.
        // Document extendedDocument = currentDocument.GetVstoObject();
    
        richTextContentControl = extendedDocument.Controls.AddRichTextContentControl(
            currentDocument.Paragraphs[1].Range, "richTextContentControl");
        richTextContentControl.PlaceholderText =
            "Click here to download MSDN Library information about content controls.";
    }
    
  3. Aggiungere il seguente metodo alla classe ThisAddIn. Questo metodo consente di inizializzare gli oggetti necessari per creare e inviare una richiesta al servizio Web.

    Private Sub InitializeServiceObjects()
        request = New ContentService.getContentRequest()
        proxy = New ContentService.ContentServicePortTypeClient()
        document = New ContentService.requestedDocument(0) {}
        response = New ContentService.getContentResponse()
        appId = New ContentService.appId()
        components = New System.ComponentModel.Container()
        primaryDocumentsBindingSource = New System.Windows.Forms.BindingSource(components)
    End Sub
    
    private void InitializeServiceObjects()
    {
        request = new ContentService.getContentRequest();
        proxy = new ContentService.ContentServicePortTypeClient();
        document = new ContentService.requestedDocument[1];
        response = new ContentService.getContentResponse();
        appId = new ContentService.appId();
        components = new System.ComponentModel.Container();
        primaryDocumentsBindingSource = new System.Windows.Forms.BindingSource(this.components);
    }
    
  4. Creare un gestore eventi per recuperare il documento di MSDN Library sui controlli del contenuto quando un utente esegue una selezione all'interno del controllo del contenuto e associa i dati al controllo del contenuto.

    Private Sub richTextContentControl_Entering _
        (ByVal sender As Object, ByVal e As ContentControlEnteringEventArgs) _
        Handles richTextContentControl.Entering
    
        document(0) = New ContentService.requestedDocument()
        With document(0)
            .type = ContentService.documentTypes.primary
            .selector = "Mtps.Xhtml"
        End With
    
        With request
            .contentIdentifier = "ed59e522-dd6e-4c82-8d49-f5dbcfcc950d"
            .locale = "en-us"
            .version = "VS.90"
            .requestedDocuments = document
        End With
    
        response = proxy.GetContent(appId, request)
    
        primaryDocumentsBindingSource.DataSource = _
            response.primaryDocuments(0).Any.InnerText
        richTextContentControl.DataBindings.Add("Text", _
            primaryDocumentsBindingSource.DataSource, "", True, _
            System.Windows.Forms.DataSourceUpdateMode.OnValidation)
    End Sub
    
    void richTextContentControl_Entering(object sender, ContentControlEnteringEventArgs e)
    {
        document[0] = new ContentService.requestedDocument();
        document[0].type = ContentService.documentTypes.primary;
        document[0].selector = "Mtps.Xhtml";
    
        request.contentIdentifier = "ed59e522-dd6e-4c82-8d49-f5dbcfcc950d";
        request.locale = "en-us";
        request.version = "VS.90";
        request.requestedDocuments = document;
    
        response = proxy.GetContent(appId, request);
        primaryDocumentsBindingSource.DataSource =
            response.primaryDocuments[0].Any.InnerText;
        richTextContentControl.DataBindings.Add("Text",
            primaryDocumentsBindingSource.DataSource, "", true,
            System.Windows.Forms.DataSourceUpdateMode.OnValidation);
    }
    
  5. Chiamare i metodi AddRichTextControlAtRange e InitializeServiceObjects dal metodo ThisAddIn_Startup. Per i programmatori C#, aggiungere un gestore eventi.

    Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup
        AddRichTextControlAtRange()
        InitializeServiceObjects()
    End Sub
    
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        AddRichTextControlAtRange();
        InitializeServiceObjects();
        this.richTextContentControl.Entering += richTextContentControl_Entering;
    }
    

Verifica del componente aggiuntivo

Quando si apre Word, viene visualizzato il controllo RichTextContentControl. Il testo del controllo viene modificato quando si esegue una selezione all'interno dello stesso.

Per verificare il componente aggiuntivo

  1. Premere F5.

  2. Selezione all'interno del controllo del contenuto.

    Le informazioni vengono scaricate da MTPS Content Service e visualizzate all'interno del controllo del contenuto.

Vedere anche

Altre risorse

Associazione di dati ai controlli nelle soluzioni Office