using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Reflection; using System.Xml.XPath; using System.Xml.Linq; using SDKDocGenerator.Syntax; namespace SDKDocGenerator.Writers { public class PropertyWriter : MemberWriter { readonly PropertyInfoWrapper _propertyInfo; public PropertyWriter(GenerationManifest artifacts, FrameworkVersion version, PropertyInfoWrapper propertyInfo) : base(artifacts, version, propertyInfo) { this._propertyInfo = propertyInfo; } protected override string GenerateFilename() { return FilenameGenerator.GenerateFilename(this._propertyInfo); } protected override string GenerateFilepath() { return GenerationManifest.OutputSubFolderFromNamespace(_propertyInfo.DeclaringType.Namespace); } protected override string GetTitle() { return string.Format("{0} {1}", GetMemberName(), GetMemberType()); } protected override string GetMemberName() { return string.Format("{0}.{1}", this._propertyInfo.DeclaringType.GetDisplayName(false), this._propertyInfo.Name); } protected override string GetMemberType() { return "Property"; } protected override XElement GetSummaryDocumentation() { var element = NDocUtilities.FindDocumentation(this._propertyInfo); return element; } protected override string GetSyntax() { return new CSharpSyntaxGenerator(this._version).GenerateSyntax(this._propertyInfo); } protected override void AddReturn(System.IO.TextWriter writer) { var returnType = this._propertyInfo.PropertyType; if (returnType == null) return; writer.WriteLine("