public override void AddMethodAtStart(ITypeDefinition declaringType, Accessibility accessibility, IType returnType, string name) { SDRefactoringContext context = declaringType.CreateRefactoringContext(); var typeDecl = context.GetNode<TypeDeclaration>(); using (var script = context.StartScript()) { var astBuilder = context.CreateTypeSystemAstBuilder(typeDecl.FirstChild); var methodDecl = new MethodDeclaration(); methodDecl.Name = name; methodDecl.ReturnType = astBuilder.ConvertType(context.Compilation.Import(returnType)); script.AddTo(typeDecl, methodDecl); } }
public override void AddField(ITypeDefinition declaringType, Accessibility accessibility, IType fieldType, string name) { SDRefactoringContext context = declaringType.CreateRefactoringContext(); var typeDecl = context.GetNode<TypeDeclaration>(); using (var script = context.StartScript()) { var astBuilder = context.CreateTypeSystemAstBuilder(typeDecl.FirstChild); var fieldDecl = new FieldDeclaration(); fieldDecl.Modifiers = TypeSystemAstBuilder.ModifierFromAccessibility(accessibility); fieldDecl.ReturnType = astBuilder.ConvertType(context.Compilation.Import(fieldType)); fieldDecl.Variables.Add(new VariableInitializer(name)); script.InsertWithCursor("Add field: " + name, Script.InsertPosition.End, fieldDecl); } }