本文整理汇总了C#中CodeWriter类的典型用法代码示例。如果您正苦于以下问题:C# CodeWriter类的具体用法?C# CodeWriter怎么用?C# CodeWriter使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CodeWriter类属于命名空间,在下文中一共展示了CodeWriter类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: WriteDataContextProcedures
protected virtual void WriteDataContextProcedures(CodeWriter writer, DbLinq.Schema.Dbml.Database schema, GenerationContext context)
{
foreach (var procedure in schema.Functions)
{
WriteDataContextProcedure(writer, procedure, context);
}
}
示例2: WriteDataContextCtors
protected virtual void WriteDataContextCtors(CodeWriter writer, Database schema, Type contextBaseType, GenerationContext context)
{
// ctor taking a connections tring
WriteDataContextCtor(writer, schema, contextBaseType,
new[] { new ParameterDefinition { Name = "connectionString", Type = typeof(string) } },
new[] { "connectionString" },
new[] { typeof(string) },
context);
// the two constructors below have the same prototype, so they are mutually exclusive
// the base class requires a IVendor
if (!WriteDataContextCtor(writer, schema, contextBaseType,
new[] { new ParameterDefinition { Name = "connection", Type = typeof(IDbConnection) } },
new[] { "connection", writer.GetNewExpression(writer.GetMethodCallExpression(writer.GetLiteralFullType(context.SchemaLoader.Vendor.GetType()))) },
new[] { typeof(IDbConnection), typeof(IVendor) },
context))
{
// OR the base class requires no IVendor
WriteDataContextCtor(writer, schema, contextBaseType,
new[] { new ParameterDefinition { Name = "connection", Type = typeof(IDbConnection) } },
new[] { "connection" },
new[] { typeof(IDbConnection) },
context);
}
// ctor(string, MappingSource)
WriteDataContextCtor(writer, schema, contextBaseType,
new[] {
new ParameterDefinition { Name = "connection", Type = typeof(string) },
new ParameterDefinition { Name = "mappingSource", Type = typeof(MappingSource) },
},
new[] { "connection", "mappingSource" },
new[] { typeof(string), typeof (MappingSource) },
context);
// ctor(IDbConnection, MappingSource)
WriteDataContextCtor(writer, schema, contextBaseType,
new[] {
new ParameterDefinition { Name = "connection", Type = typeof(IDbConnection) },
new ParameterDefinition { Name = "mappingSource", Type = typeof(MappingSource) },
},
new[] { "connection", "mappingSource" },
new[] { typeof(IDbConnection), typeof(MappingSource) },
context);
// just in case you'd like to specify another vendor than the one who helped generating this file
WriteDataContextCtor(writer, schema, contextBaseType,
new[] {
new ParameterDefinition { Name = "connection", Type = typeof(IDbConnection) },
new ParameterDefinition { Name = "vendor", Type = typeof(IVendor) },
},
new[] { "connection", "vendor" },
new[] { typeof(IDbConnection), typeof(IVendor) },
context);
WriteDataContextCtor(writer, schema, contextBaseType,
new[] {
new ParameterDefinition { Name = "connection", Type = typeof(IDbConnection) },
new ParameterDefinition { Name = "mappingSource", Type = typeof(MappingSource) },
new ParameterDefinition { Name = "vendor", Type = typeof(IVendor) },
},
new[] { "connection", "mappingSource", "vendor" },
new[] { typeof(IDbConnection), typeof(MappingSource), typeof(IVendor) },
context);
}
示例3: WriteDataContextProcedure
private void WriteDataContextProcedure(CodeWriter writer, Function procedure, GenerationContext context)
{
if (procedure == null || procedure.Name == null)
{
//Logger.Write(Level.Error, "CodeGenStoredProc: Error L33 Invalid storedProcedure object");
writer.WriteCommentLine("error L33 Invalid storedProcedure object");
return;
}
var functionAttribute = NewAttributeDefinition<FunctionAttribute>();
functionAttribute["Name"] = procedure.Name;
functionAttribute["IsComposable"] = procedure.IsComposable;
SpecificationDefinition specifications;
if (procedure.AccessModifierSpecified)
specifications = GetSpecificationDefinition(procedure.AccessModifier);
else
specifications = SpecificationDefinition.Public;
if (procedure.ModifierSpecified)
specifications |= GetSpecificationDefinition(procedure.Modifier);
using (writer.WriteAttribute(functionAttribute))
using (writer.WriteMethod(specifications, GetProcedureName(procedure),
GetProcedureType(procedure), GetProcedureParameters(procedure)))
{
string result = WriteProcedureBodyMethodCall(writer, procedure, context);
WriteProcedureBodyOutParameters(writer, procedure, result, context);
WriteProcedureBodyReturnValue(writer, procedure, result, context);
}
writer.WriteLine();
}
示例4: GenerateClass
public override string GenerateClass(Schema schema)
{
CodeWriter writer = new CodeWriter();
string className = "DataStore";
writer.WriteLine(USING_STRING);
writer.WriteLine();
writer.WriteLine("namespace DataAccess");
writer.WriteLine("{");
writer.PushIdent();
writer.WriteLineFormat("public class {0}: DatabaseContext, IDataStore", className);
writer.WriteLine("{");
writer.PushIdent();
writer.WriteLineFormat("public {0}(IDbConnection connection, IDbTransaction transaction) : base(connection, transaction) {{ }}", className);
writer.WriteLineFormat("public {0}(IDbConnection connection) : base(connection, null) {{ }}", className);
writer.WriteLine();
foreach (StoredProcedure sp in schema.StoredProcedures)
{
string methodHeader = "public " + generateMethodHeader(sp);
string methodBody = GenerateMethodBody(sp);
writer.WriteLine(methodHeader);
writer.WriteLine(methodBody);
writer.WriteLine();
}
writer.PopIdent();
writer.WriteLine("}");
writer.PopIdent();
writer.WriteLine("}");
return writer.Code;
}
示例5: GenerateClassSerializer
public static void GenerateClassSerializer(ProtoMessage m, CodeWriter cw)
{
if (m.OptionExternal || m.OptionType == "interface")
{
//Don't make partial class of external classes or interfaces
//Make separate static class for them
cw.Bracket(m.OptionAccess + " static class " + m.SerializerType);
}
else
{
cw.Attribute("System.Serializable()");
cw.Bracket(m.OptionAccess + " partial " + m.OptionType + " " + m.SerializerType);
}
GenerateReader(m, cw);
GenerateWriter(m, cw);
foreach (ProtoMessage sub in m.Messages.Values)
{
cw.WriteLine();
GenerateClassSerializer(sub, cw);
}
cw.EndBracket();
cw.WriteLine();
return;
}
示例6: GenerateInterface
public string GenerateInterface(Service service, Interface intr)
{
CodeWriter writer = new CodeWriter();
writer.WriteLine("define([\"dojo/request\", \"dojo/json\"], function (request, JSON) {");
writer.PushIdent();
writer.WriteLine("var serviceClient = {");
writer.PushIdent();
writer.WriteLine("urlString: '',");
writer.WriteLine();
int methodCount = intr.Methods.Count;
for (int i = 0; i < methodCount; i++)
{
Method method = intr.Methods[i];
string comma = i < methodCount - 1 ? "," : "";
writer.Write(GenerateMethod(intr, method).Trim());
writer.WriteLineNoIdent(comma);
writer.WriteLine();
}
writer.PopIdent();
writer.WriteLine("}");
writer.WriteLine("return serviceClient;");
writer.PopIdent();
writer.Write("});");
return writer.Code;
}
示例7: SaveHeader
/// <summary>
/// Saves the file header to disk.
/// </summary>
internal override void SaveHeader(CodeWriter writer, PFile file)
{
writer.Write(file.Name);
writer.Write(new FileInfo(file.FilePath).Length);
writer.Write(file.LastModified.Ticks);
writer.Write((int) file.Attributes);
}
示例8: GenerateClass
public string GenerateClass(Service service, Interface intr)
{
CodeWriter writer = new CodeWriter();
writer.WriteLine(HEADER);
writer.WriteLineFormat("package {0}", service.Name);
writer.WriteLine("{");
writer.PushIdent();
writer.WriteLine(IMPORT);
writer.WriteLine();
writer.WriteLineFormat("public class {0}Client", intr.Name);
writer.WriteLine("{");
writer.PushIdent();
writer.WriteLine("public var url: String = \"\";");
writer.WriteLine(LOAD);
writer.WriteLine();
foreach(Method method in intr.Methods)
{
writer.WriteLine(GenerateMethodHeader(intr, method));
writer.WriteLine("{");
writer.PushIdent();
writer.WriteLine(GenerateMethodBody(intr, method));
writer.PopIdent();
writer.WriteLine("}");
writer.WriteLine();
}
writer.PopIdent();
writer.WriteLine("}");
writer.PopIdent();
writer.WriteLine("}");
return writer.Code;
}
示例9: Translate
private string Translate(CompilationUnit typedCompilationUnit)
{
var code = new CodeWriter();
WriteAction write = typedCompilationUnit.Visit(csTranslator);
write(code);
return code.ToString();
}
示例10: WriteClassHeader
public override void WriteClassHeader(CodeWriter writer, DbLinq.Schema.Dbml.Table table, GenerationContext context)
{
using (writer.WriteRegion(string.Format("{0} handling", typeof(INotifyPropertyChanging).Name)))
{
const string eventName = "PropertyChanging"; // do not change, part of INotifyPropertyChanging
const string emptyArgs = "emptyChangingEventArgs";
// event
writer.WriteEvent(SpecificationDefinition.Public, eventName, typeof(PropertyChangingEventHandler).Name);
writer.WriteLine();
// empty event arg
writer.WriteField(SpecificationDefinition.Private | SpecificationDefinition.Static,
writer.GetAssignmentExpression(emptyArgs, writer.GetNewExpression(
writer.GetMethodCallExpression(typeof(PropertyChangingEventArgs).Name, "\"\""))),
typeof(PropertyChangingEventArgs).Name);
// method
using (writer.WriteMethod(SpecificationDefinition.Protected | SpecificationDefinition.Virtual,
sendPropertyChangingMethod, null))
{
using (writer.WriteIf(writer.GetDifferentExpression(eventName, writer.GetNullExpression())))
{
writer.WriteLine(writer.GetStatement(writer.GetMethodCallExpression(eventName,
writer.GetThisExpression(), emptyArgs)));
}
}
}
}
示例11: GenerateInterface
public string GenerateInterface(Service service, Interface intr)
{
CodeWriter writer = new CodeWriter();
writer.WriteFormat(".factory(\"{0}Client\", function($http, serviceUrl)", intr.Name);
writer.WriteLineNoIdent(" {");
writer.PushIdent();
writer.WriteLine("return {");
int methodCount = intr.Methods.Count;
for (int i = 0; i < methodCount; i++)
{
writer.PushIdent();
Method method = intr.Methods[i];
string comma = i < methodCount - 1 ? "," : "";
writer.Write(GenerateMethod(intr, method).Trim());
writer.WriteLineNoIdent(comma);
writer.WriteLine();
writer.PopIdent();
}
writer.WriteLine("}");
writer.PopIdent();
writer.WriteLine("})");
return writer.Code;
}
示例12: GenerateProperties
/// <summary>
/// Generates the properties.
/// </summary>
/// <param name='template'>
/// if true it will generate only properties that are not included by default, because of the [generate=false] option.
/// </param>
static void GenerateProperties(ProtoMessage m, CodeWriter cw)
{
foreach (Field f in m.Fields.Values)
{
if (f.OptionExternal)
cw.WriteLine("//" + GenerateProperty(f) + " // Implemented by user elsewhere");
else
{
if (f.Comments != null)
cw.Summary(f.Comments);
cw.WriteLine(GenerateProperty(f));
cw.WriteLine();
}
}
//Wire format field ID
#if DEBUG
cw.Comment("ProtocolBuffers wire field id");
foreach (Field f in m.Fields.Values)
{
cw.WriteLine("public const int " + f.CsName + "FieldID = " + f.ID + ";");
}
#endif
}
示例13: GenerateEnums
static void GenerateEnums(ProtoMessage m, CodeWriter cw)
{
foreach (ProtoEnum me in m.Enums.Values)
{
GenerateEnum(me, cw);
}
}
示例14: WriteClass
protected virtual void WriteClass(CodeWriter writer, Table table, Database schema, GenerationContext context)
{
writer.WriteLine();
string entityBase = context.Parameters.EntityBase;
if (string.IsNullOrEmpty(entityBase))
entityBase = schema.EntityBase;
var specifications = SpecificationDefinition.Partial;
if (table.Type.AccessModifierSpecified)
specifications |= GetSpecificationDefinition(table.Type.AccessModifier);
else
specifications |= SpecificationDefinition.Public;
if (table.Type.ModifierSpecified)
specifications |= GetSpecificationDefinition(table.Type.Modifier);
var tableAttribute = NewAttributeDefinition<TableAttribute>();
tableAttribute["Name"] = table.Name;
using (writer.WriteAttribute(tableAttribute))
using (writer.WriteClass(specifications,
table.Type.Name, entityBase, context.Parameters.EntityInterfaces))
{
WriteClassHeader(writer, table, context);
WriteCustomTypes(writer, table, schema, context);
WriteClassExtensibilityDeclarations(writer, table, context);
WriteClassProperties(writer, table, context);
if (context.Parameters.GenerateEqualsHash)
WriteClassEqualsAndHash(writer, table, context);
WriteClassChildren(writer, table, schema, context);
WriteClassParents(writer, table, schema, context);
WriteClassChildrenAttachment(writer, table, schema, context);
WriteClassCtor(writer, table, schema, context);
}
}
示例15: generateUpdateBody
private string generateUpdateBody(Table table, List<Column> keyColumns, List<Column> updateColumns)
{
CodeWriter writer = new CodeWriter();
writer.WriteLineFormat("UPDATE [{0}].[{1}]", table.Schema.Name, table.Name);
writer.WriteLine("SET");
writer.PushIdent();
for (int i = 0; i < updateColumns.Count; i++)
{
Column column = updateColumns[i];
string and = i < updateColumns.Count - 1 ? "," : "";
string cond = string.Format("[{0}] = @{0} {1}", column.Name, and).Trim();
writer.WriteLine(cond);
}
writer.PopIdent();
writer.WriteLine("WHERE");
writer.PushIdent();
for (int i = 0; i < keyColumns.Count; i++)
{
Column column = keyColumns[i];
string and = i < keyColumns.Count - 1 ? "AND" : "";
string cond = string.Format("[{0}] = @{0} {1}", column.Name, and).Trim();
writer.WriteLine(cond);
}
writer.PopIdent();
return writer.Code;
}