/// <summary> /// Implements the interface. /// </summary> /// <param name="instance">The instance.</param> /// <param name="constructor">The constructor.</param> /// <param name="variable">The variable.</param> public static void ImplementInterface( this CodeClass instance, CodeFunction constructor, string variable) { TraceService.WriteLine("CodeClassExtensions::ImplementInterface file=" + variable); //// now add in the interfaces! //// split the variable string string[] parts = variable.Split(' '); constructor.AddParameter(parts[1], parts[0]); //// we need to add the variable. //// variable could already exist! try { instance.ImplementVariable(parts[1], parts[0], true); } catch (Exception) { TraceService.WriteError("variable already exists " + parts[1]); } //// now do the wiring up of the interface and variable! EditPoint editPoint = constructor.GetEndPoint(vsCMPart.vsCMPartBody).CreateEditPoint(); string code = string.Format("this.{0} = {1};", parts[1], parts[1]); editPoint.InsertCodeLine(code); //// now update the constructor document comments. string paramComment = string.Format("<param name=\"{0}\">The {0}.</param>{1}", parts[1], Environment.NewLine); string currentComment = constructor.DocComment; int index = currentComment.LastIndexOf("</summary>", StringComparison.Ordinal); StringBuilder sb = new StringBuilder(); if (index != -1) { sb.Append(currentComment.Substring(0, index + 10)); sb.Append(paramComment); sb.Append(currentComment.Substring(index + 10)); TraceService.WriteLine("comment added=" + paramComment); } constructor.DocComment = sb.ToString(); }