5

Sto utilizzando un diagramma di classi in Visual Studio 2008 per creare alcune classi con proprietà. Ho notato che quando creo una nuova proprietà nel diagramma di classe, si esce in codice come questo:Il diagramma di classe di Visual Studio 2008 crea proprietà vuote, non autoproprietà

public DateTime DateBilled 
{ 
    get 
    { 
     throw new System.NotImplementedException(); 
    } 
    set 
    { 
    } 
} 

Yuck. Preferirei mille volte che finisco come autoproperty come questo:

public DateTime DateBilled { get; set; } 

C'è qualche modo posso modificare o personalizzare questo?

+0

(Posso usare CodeRush per convertirli, ma poi li devo fare uno alla volta. Preferirei che siano stati creati nel modo giusto in primo luogo.) –

+0

Inoltre, mi sono imbattuto in questo: http://modeling.codeplex.com/ È una specie di soluzione. Ma non del tutto. Preferirei che le autoproprie fossero l'impostazione predefinita quando inserisco la finestra Dettagli classe; l'utilizzo di questo rende difficile impostare il tipo di proprietà. –

risposta

1

Questo non è esattamente quello che stai cercando, ma potrebbe avvicinarti al risultato che ti serve.

Questa è una macro di Visual Studio 2008 che troverà il diagramma di classe generato ottenere proprietà e sostituirle con proprietà automatiche.

  1. In VS andare in Visualizza -> Altre finestre -> Macro Explorer
  2. Fai clic destro su "MyMacros" e selezionare "Nuovo modulo ..."
  3. assegnando il nome che desideri
  4. clic destro su questo e selezionare "Nuovo macro"
  5. incolla il codice in

Ecco il codice:

DTE.ExecuteCommand("Edit.Find") 
DTE.Find.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxRegExpr 
DTE.Find.Target = vsFindTarget.vsFindTargetCurrentDocument 
DTE.Find.FindWhat = "<get$" 
DTE.Find.MatchCase = False 
DTE.Find.MatchWholeWord = False 
DTE.Find.Backwards = False 
DTE.Find.MatchInHiddenText = True 
DTE.Find.Action = vsFindAction.vsFindActionFind 
While DTE.Find.Execute() <> vsFindResult.vsFindResultNotFound 
    DTE.ActiveDocument.Selection.LineDown(True, 6) 
    DTE.ExecuteCommand("Edit.Delete") 
    DTE.ActiveDocument.Selection.Text = "get; set;" 
End While 

Questo è praticamente solo un trucco, e non sono sicuro che funzionerà con tutti gli output del progettista della classe, ma ha funzionato nei miei test fino ad ora e certamente consente di risparmiare alcune sequenze di tasti.

Spero che aiuti!

Problemi correlati