private bool GetClassMemberType(ITaskItem item, out ClassMemberTypes type) { var memberTypeStr = item.GetMetadata("Code-ClassMemberType"); if (string.IsNullOrEmpty(memberTypeStr)) memberTypeStr = ClassMemberTypes.Constant.ToString(); if (!Enum.TryParse(memberTypeStr, true, out type)) { Log.LogError("Invalid Code-ClassMemberType \"{0}\", value must be in \"{1}\".", memberTypeStr, string.Join(", ", Enum.GetNames(typeof(ClassMemberTypes)))); return false; } return true; }
private static void WriteMember(TextWriter writer, ClassMemberTypes classMemberType, string name, string value) { switch (classMemberType) { case ClassMemberTypes.Constant: writer.WriteLine(" public const string {0} = \"{1}\";", name, value); break; case ClassMemberTypes.Property: writer.WriteLine(" public string {0} {{ get {{ return \"{1}\"; }}", name, value); break; case ClassMemberTypes.Field: writer.WriteLine(" public readonly string {0} = \"{1}\";", name, value); break; default: throw new NotSupportedException(string.Format("Not supported ClassMemberType \"{0}\".", classMemberType)); } }