예제 #1
0
	public void GenerateNotifyChanged(Class @class, List<Field> fields)
    {
		var generationMode = GetGenerationModeForClass(fields);
		if (!GenerateForNotifyProperty(generationMode))
			return;
		
		if (GetNotifyChangedGenerationSkipForClass(fields))
	        return;

		var fileName = @class.FileWithShortestName();
		var projectItem = Parser.GetProjectItem(fileName);
		var outputFileName = fileName.Replace(".cs", ".PropertyEvents.g.cs");
		
		GenerateHeader();
		GenerateUsings(@class, new List<string> { "System", "System.ComponentModel", @class.Namespace.Name});

        
        #line default
        #line hidden
        
        #line 357 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write("\r\nnamespace ");

        
        #line default
        #line hidden
        
        #line 359 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(@class.Namespace.Name));

        
        #line default
        #line hidden
        
        #line 359 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write("\t\r\n{\r\n    public partial class ");

        
        #line default
        #line hidden
        
        #line 361 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(@class.Name));

        
        #line default
        #line hidden
        
        #line 361 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(@"
    {
		public event PropertyChangedEventHandler PropertyChanged;

		protected virtual void NotifyPropertyChanged(String info)
		{
			if (PropertyChanged != null)
			{
				PropertyChanged(this, new PropertyChangedEventArgs(info));
			}
		}
	}
}

");

        
        #line default
        #line hidden
        
        #line 375 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"

		GenerateFooter();
		debugOutput += string.Format("Generated {0}\r\n", outputFileName);
		Delete(projectItem, outputFileName);
		Save(projectItem, outputFileName);
	}
예제 #2
0
	public void GenerateNotifyChangedInterface(Class @class, List<Field> fields)
    {
		var generationMode = GetGenerationModeForClass(fields);
		if (!GenerateForNotifyProperty(generationMode))
			return;
		var fileName = @class.FileWithShortestName();
		var projectItem = Parser.GetProjectItem(fileName);
		var outputFileName = fileName.Replace(".cs", ".EventPropertyInterface.g.cs");
		
		GenerateHeader();
		GenerateUsings(@class, new List<string> { "System", "System.ComponentModel", @class.Namespace.Name});

        
        #line default
        #line hidden
        
        #line 311 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write("\r\nnamespace ");

        
        #line default
        #line hidden
        
        #line 313 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(@class.Namespace.Name));

        
        #line default
        #line hidden
        
        #line 313 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write("\t\r\n{\r\n    public interface I");

        
        #line default
        #line hidden
        
        #line 315 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(@class.Name));

        
        #line default
        #line hidden
        
        #line 315 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write("EventProperties\r\n    {\r\n\t\tevent PropertyChangedEventHandler PropertyChanged;\r\n");

        
        #line default
        #line hidden
        
        #line 318 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"

	    foreach (var field in fields)
	    {
	        var propertyName = field.GetDefaultPublicPropertyName();
			var propertyType = field.Type;

        
        #line default
        #line hidden
        
        #line 323 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write("\t\t\t");

        
        #line default
        #line hidden
        
        #line 324 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(propertyType));

        
        #line default
        #line hidden
        
        #line 324 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(" ");

        
        #line default
        #line hidden
        
        #line 324 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(propertyName));

        
        #line default
        #line hidden
        
        #line 324 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write(" { get;set; }\r\n\r\n");

        
        #line default
        #line hidden
        
        #line 326 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"


		
	    }

        
        #line default
        #line hidden
        
        #line 330 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"
this.Write("\r\n\t}\r\n}\r\n\r\n");

        
        #line default
        #line hidden
        
        #line 335 "E:\Development\Crossbase\CrossBase.CodeGeneration\Templates\EventPropertyTemplate.tt"

		GenerateFooter();
		debugOutput += string.Format("Generated {0}\r\n", outputFileName);
		Delete(projectItem, outputFileName);
		Save(projectItem, outputFileName);
	}