Walkthrough

Această descriere descrie modul de creare a unei conducte pentru un add-in care execută funcții simple ale calculatorului. Nu există un script adecvat pentru utilizarea în mediul de producție, ci pur și simplu demonstrează funcțiile de bază ale conductei și furnizarea aplicației principale add-on.







Acest ghid pas-cu-pas descrie următoarele sarcini:

Crearea unei soluții în Visual Studio.

Crearea unei structuri de directoare pentru conducte.

Crearea unui contract și a prezentărilor.

Creați un adaptor pe partea laterală a programului de completare.

Creați un adaptor pe partea principală a aplicației.

Creați aplicația principală.

Lansați aplicația principală.

Această conductă transferă numai tipurile serializate (Double și String) între aplicația principală și add-in. Pentru un exemplu care arată cum să transferați colecții de tipuri complexe de date, consultați Walkthrough: Passing Collections între Hosts și Add-Ins.

Contractul pentru această conductă definește modelul obiectului din patru operații aritmetice: adunarea, scăderea, multiplicarea și diviziunea. Aplicația principală oferă un supliment pentru formula care trebuie calculată, de exemplu 2 + 2, iar add-in-ul returnează rezultatul.

În versiunea 2 a programului de adăugare a calculatorului sunt oferite capacități suplimentare de calcul și se demonstrează controlul versiunii. Acest lucru este descris în Walkthrough: Activarea compatibilității înapoi în secțiunea Modificări gazdă.

exemple de cod suplimentar și CTP-versiune a programului de completare instrumente de construcție pentru conductele de cm. La site-ul Web CodePlex în secțiunea privind gestionarea extensii și suplimente.

Dacă este necesar, construiți o soluție Visual Studio. Această soluție nu poate fi efectuată înainte de procedura de finalizare, totuși, construcția acesteia după fiecare procedură garantează corectitudinea fiecărui proiect.

Având în vedere că prezentarea suprastructurii și prezentarea cererii principale, referitoare la suprastructura, de regulă, nu diferă în codul, mai ales în prima versiune a add-in-uri, puteți crea cu ușurință ambele reprezentări simultan. Ele diferă doar într-o singură privință: vizualizarea add-in are nevoie de atributul AddInBaseAttribute. întrucât reprezentarea aplicației principale, care se referă la add-in, nu are nevoie de atribute.

Pentru a crea o vedere a programului de completare

Adăugați un nou proiect numit Calc1AddInView la soluția CalculatorV1. Ar trebui să se bazeze pe șablonul Bibliotecă de clasă.

În Solution Explorer, adăugați o referință la System.AddIn.dll la proiectul Calc1AddInView.

În Solution Explorer, excludeți clasa implicită care a fost adăugată la noile proiecte de bibliotecă de clasă. Apoi adăugați un element nou la acest proiect utilizând șablonul de interfață. În caseta de dialog Adăugați un nou element, denumiți această interfață ICalculator.

În fișierul de interfață, adăugați o referință la spațiul de nume la System.AddIn.Pipeline.

Utilizați următorul cod pentru a finaliza această vizualizare a programului de completare. Rețineți că această interfață trebuie să aibă atributul AddInBaseAttribute.

Acest adaptor din partea laterală a dispozitivului de completare este alcătuit dintr-un adaptor de prezentare-contract. În acest segment de conducte, sunt convertite tipurile din vizualizarea suplimentară a contractului.

În această conductă, add-in-ul servește aplicația principală, iar tipurile sunt trimise din add-in la aplicația principală. Din moment ce nu exista tipuri sunt trimise din aplicația principală în suprastructura, nu este necesar să se includă un adaptor „contract de reprezentare“ pe partea de suprastructură a transportorului.

Pentru a crea un adaptor pe partea laterală a programului de completare

Adăugați un nou proiect Calc1AddInSideAdapter la soluția CalculatorV1. Ar trebui să se bazeze pe șablonul Bibliotecă de clasă.

În Solution Explorer, adăugați referințe la următoarele ansambluri la proiectul Calc1AddInSideAdapter.

Adăugați referințe la proiecte pentru segmentele adiacente ale conductei:

Selectați link-ul pentru fiecare proiect și în câmpul Proprietăți, setați valoarea la False pentru parametrul Copiere locală. În Visual Basic, utilizați fila Referințe din secțiunea Proprietăți proiect pentru a seta valoarea Copy local to False pentru cele două linkuri de proiect.

Redenumiți clasa de proiect implicită CalculatorViewToContractAddInSideAdapter.

În fișierul de clasă, adăugați referințe la spațiul de nume la System.AddIn.Pipeline.

Aplicați atributul AddInAdapterAttribute la clasa CalculatorViewToContractAddInSideAdapter. Pentru ao specifica ca un adaptor pe partea laterală a programului de completare.







Clasa CalculatorViewToContractAddInSideAdapter trebuie să moștenească ContractBase. care oferă o implementare a interfeței IContract în mod implicit și implementează interfața de contract pentru conducta ICalc1Contract.

Adăugați un constructor deschis care acceptă ICalculator. o cachează într-un câmp privat și numește clasa de bază a constructorului.

Implementarea elementelor ICalc1Contract. apelați doar elementele corespunzătoare ale instanței ICalculator. care sunt transmise constructorului și returnează rezultatul. Aceasta adaptează vederea (ICalculator) la contract (ICalc1Contract).

Următorul cod afișează adaptorul completat din partea laterală a programului de completare.

Acest adaptor din partea principală a aplicației este alcătuit dintr-un adaptor "prezentare contractuală". Acest segment adaptează contractul la reprezentarea aplicației principale legate de add-in.

În această conductă, add-in-ul servește aplicația principală, iar tipurile sunt trimise din add-in la aplicația principală. Deoarece nu sunt direcționate tipuri din aplicația principală în add-in, nu este necesar să includeți un adaptor de prezentare-contract.

Pentru a gestiona durata de viață, trebuie să utilizați obiectul ContractHandle. Să asocieze cu contractul marcatorul de timp al existenței. Pentru ca mecanismul de gestionare a duratei de viață să funcționeze, este necesar să se păstreze o referință la acest descriptor. După aplicarea marcatorului, nu este nevoie de programare suplimentară, deoarece sistemul de adăugare poate șterge obiectele dacă nu sunt deja în uz și le pune la dispoziția colectorului de gunoi. Pentru mai multe informații, consultați Gestionarea duratei de viață.

Pentru a crea un adaptor pe partea principală a aplicației

Adăugați un nou proiect numit Calc1HostSideAdapter la soluția CalculatorV1. Ar trebui să se bazeze pe șablonul Bibliotecă de clasă.

În Solution Explorer, adăugați următoarele referințe de asamblare la proiectul Calc1HostSideAdapter.

Adăugarea de referințe la proiecte ale unor segmente adiacente:

Selectați link-ul pentru fiecare proiect și în câmpul Proprietăți, setați valoarea la False pentru parametrul Copiere locală. În Visual Basic, utilizați fila Referințe din secțiunea Proprietăți proiect pentru a seta valoarea Copy local to False pentru cele două linkuri de proiect.

Redenumiți clasa de proiecte implicită la CalculatorContractToViewHostSideAdapter.

În fișierul de clasă, adăugați referințe la spațiul de nume la System.AddIn.Pipeline.

Aplicați atributul HostAdapterAttribute la clasa CalculatorContractToViewHostSideAdapter. Pentru ao defini ca segment de adaptare pe partea principală a aplicației.

clasa CalculatorContractToViewHostSideAdapter trebuie să implementeze interfața care reprezintă ideea cererii principale, referitoare la suprastructura: Calc1HVAs.ICalculator (Calc1HVA.CalcHVAs.ICalculator în Visual Basic).

Adăugați un constructor deschis care acceptă tipul de contract al conductei ICalc1Contract. Constructorul ar trebui să cacheze legăturile la contract. De asemenea, trebuie să creeze și să cacheze un nou descriptor ContractHandle pentru contract pentru a gestiona ciclul de viață al add-in-ului.

Descriptorul Contractului de Handheld joacă un rol cheie în gestionarea duratei de viață. Dacă nu salvați referința la obiectul ContractHandle. acesta va fi șters atunci când se colectează gunoi și conducta se va închide în mod neașteptat pentru program. Acest lucru poate cauza erori greu de diagnosticat, de exemplu, AppDomainUnloadedException. Oprirea este un pas integrat în ciclul de viață al conductei, astfel încât să nu puteți defini o stare ca o eroare utilizând codul de gestionare a duratei de viață.

Implementarea elementelor ICalculator. apelați doar elementele corespunzătoare ale instanței ICalc1Contract. care sunt transmise constructorului, și returnează rezultatele. Aceasta adaptează contractul (ICalc1Contract) la vizualizare (ICalculator).

Următorul cod arată adaptorul completat pe partea principală a aplicației.

Aplicația principală interacționează cu add-in-ul prin prezentarea aplicației principale legate de add-in. Metodele utilizate pentru a detecta și a activa add-in-ul sunt furnizate de clasele AddInStore și AddInToken pentru a efectua următoarele acțiuni:

Actualizarea cache-ului conductei și a informațiilor suplimentare.

Detectarea adaosurilor pentru tipul de prezentare al aplicației principale ICalculator în rădăcina specificată a conductei.

Solicitați utilizatorului să specificați add-on-ul care trebuie utilizat.

Activarea suplimentului selectat în noul domeniu al aplicației cu nivelul de încredere selectat.

Executarea metodei personalizate RunCalculator. care solicită metodele de adăugare, așa cum este indicat în vizualizarea principală a aplicației.

Pentru a crea aplicația principală

Adăugați un nou proiect numit Calc1Host la soluția CalculatorV1. Ar trebui să se bazeze pe șablonul aplicației Console.

În Solution Explorer, adăugați o referință la ansamblul System.AddIn.dll în proiectul Calc1Host.

Adăugați o referință la proiectul Calc1HVA. Selectați referința proiectului, apoi, în secțiunea Proprietăți, setați valoarea False pentru a copia local. În Visual Basic, utilizați elementul Proiect Properties din fila Links. Pentru a seta valoarea Copiere locală la False.

Redenumiți fișierul de clasă (modul în Visual Basic) MathHost1.

În Visual Basic, utilizați fila Application (Aplicație) din caseta de dialog Properties Properties (Proprietăți proiect) pentru a seta valoarea Sub Main (Principal) pentru obiectul Automate Launch (Începere automată).

În clasa sau fișierul modulului, adăugați o referință de spațiu de nume la System.AddIn.Hosting.

În fișierul de clasă sau modul, adăugați o referință la spațiile de nume pentru a reprezenta aplicația principală care aparține aplicației Add-In: CalcHVA. (În Visual Basic, această referință la spațiul de nume este Calc1HVA.CalcHVAs cu excepția cazului în care spațiul de nume implicit din proiectele Visual Basic a fost dezactivat.)

În Solution Explorer, selectați soluția, apoi din meniul Project, faceți clic pe Properties. În caseta de dialog Sisteme de proprietăți de soluții, setați obiectul One lansabil ca proiect principal al aplicației.

În fișierul de clasă sau modul, utilizați metoda AddInStore. Actualizați pentru a actualiza memoria cache. Utilizați metoda AddInStore. FindAddIn pentru a obține o colecție de markere și pentru a folosi metoda AddInToken. activa pentru a activa add-in-ul.

Următorul cod arată finalizarea aplicației principale.







Articole similare

Trimiteți-le prietenilor: