Mam projekt, który generuje tekst (reprezentujący interfejs i klasę) na podstawie metadanych. Chciałbym wziąć wygenerowany kod i wstawić go jako nową klasę i interfejs bezpośrednio do aktualnie otwartego rozwiązania w ramach konkretnego projektu i katalogu. Utworzę narzędzie menu, które wygeneruje klasę, ale nie wiem, jak to zrobić, to uzyskać dostęp do następujących elementów z mojego niestandardowego rozszerzenia Visual Studio:Generowanie kodu z rozszerzenia Visual Studio
- Potraktuj obecne rozwiązanie i znajdź projekt zrzucić wygenerowany kod do.
- Otwórz nowe okno pliku w programie Visual Studio i wprowadź wygenerowany tekst pochodzący z mojego narzędzia bezpośrednio do tego okna.
- Utwórz nowy folder w konkretnym projekcie w ramach bieżącego rozwiązania z mojego niestandardowego rozszerzenia.
EDIT - Aby wyjaśnić muszę otworzyć nowy plik (np prawym przyciskiem myszy na projekt -> Add -> New Class) i wstawić tekst do niego ze w moim zwyczaju Visual Studio Extension.
Dzięki
Czy za pomocą szablonów T4 zamiast rozszerzenia? Możesz utworzyć swoje dane meta jako XML w pliku .config i uruchomić szablon T4, aby wygenerować każdą klasę/interfejs. Działa to tylko w przypadku generowania 1-1 meta-generowania. – DaveShaw
Tak, faktycznie używam szablonów T4 do generowania kodu teraz, ale te klasy są generowane z metadanych w bazie danych, więc nie chcę, aby istniały wewnątrz projektu, chcę być w stanie pozwolić użytkownikowi powiedzieć, który typ klasy chcą, a następnie generuję kod (używając T4) i zwracam klasę oraz interfejs jako tekst, co pozostawia mnie na powyższych pytaniach. –
Sensowne jest umieszczenie szablonu T4 w tym samym miejscu, w którym będzie używany wygenerowany kod. – StingyJack