本文整理汇总了C#中System.CodeDom.CodePrimitiveExpression类的典型用法代码示例。如果您正苦于以下问题:C# CodePrimitiveExpression类的具体用法?C# CodePrimitiveExpression怎么用?C# CodePrimitiveExpression使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CodePrimitiveExpression类属于System.CodeDom命名空间,在下文中一共展示了CodePrimitiveExpression类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: getInvokeDetailStatement
private static CodeExpressionStatement getInvokeDetailStatement(RecordStep step, string dataClass)
{
CodeExpressionStatement statement = new CodeExpressionStatement();
CodeExpression[] paras;
if (step.ActionParams != null)
{
paras = new CodeExpression[step.ActionParams.Count];
///判断是否参数化函数代码
if(dataClass == null)
{
for (int i = 0; i < step.ActionParams.Count; i++)
{
paras[i] = new CodePrimitiveExpression(step.ActionParams[i].Value);
}
}
else
{
for (int i = 0; i < step.ActionParams.Count; i++)
{
paras[i] = step.ActionParams[i].GetVariableReference(dataClass);
}
}
}
else
{
paras = new CodeExpression[0];
}
CodeMethodInvokeExpression method = new CodeMethodInvokeExpression(step.CompInfo.FindMethod, step.ActionName, paras);
statement.Expression = method;
return statement;
}
开发者ID:xneo123,项目名称:SAPGuiAutomationLib,代码行数:33,代码来源:RecordStepExtension.cs
示例2: EmitPrimitive
Type EmitPrimitive(CodePrimitiveExpression Primitive)
{
Type T;
if(Primitive.Value == null) T = null;
else T = Primitive.Value.GetType();
if(T != null && T.IsArray)
{
var Contents = Primitive.Value as object[];
Type Element = T.GetElementType();
Generator.Emit(OpCodes.Ldc_I4, Contents.Length);
Generator.Emit(OpCodes.Newarr, Element);
int i = 0;
foreach(var Value in Contents)
{
Generator.Emit(OpCodes.Dup);
Generator.Emit(OpCodes.Ldc_I4, i);
EmitLiteral(Element, Value);
Generator.Emit(OpCodes.Stelem_Ref);
i++;
}
return T;
}
else return EmitLiteral(T, Primitive.Value);
}
开发者ID:lnsoso,项目名称:IronAHK,代码行数:29,代码来源:MethodWriter.cs
示例3: CreateConstructor
protected override void CreateConstructor (CodeStatementCollection localVars,
CodeStatementCollection trueStmt)
{
if (pageParser.ClientTarget != null) {
CodeExpression prop;
prop = new CodePropertyReferenceExpression (thisRef, "ClientTarget");
CodeExpression ct = new CodePrimitiveExpression (pageParser.ClientTarget);
if (localVars == null)
localVars = new CodeStatementCollection ();
localVars.Add (new CodeAssignStatement (prop, ct));
}
#if NET_2_0
if (pageParser.MasterPageFile != null) {
CodeExpression prop;
prop = new CodePropertyReferenceExpression (thisRef, "MasterPageFile");
CodeExpression ct = new CodePrimitiveExpression (pageParser.MasterPageFile);
if (localVars == null)
localVars = new CodeStatementCollection ();
localVars.Add (new CodeAssignStatement (prop, ct));
}
#endif
base.CreateConstructor (localVars, trueStmt);
}
开发者ID:jjenki11,项目名称:blaze-chem-rendering,代码行数:25,代码来源:PageCompiler.cs
示例4: SetRow
public void SetRow(TestClassGenerationContext generationContext, CodeMemberMethod testMethod, IEnumerable<string> arguments, IEnumerable<string> tags, bool isIgnored)
{
var args = arguments.Select(
arg => new CodeAttributeArgument(new CodePrimitiveExpression(arg))).ToList();
// addressing ReSharper bug: TestCase attribute with empty string[] param causes inconclusive result - https://github.com/techtalk/SpecFlow/issues/116
bool hasExampleTags = tags.Any();
var exampleTagExpressionList = tags.Select(t => new CodePrimitiveExpression(t));
CodeExpression exampleTagsExpression = hasExampleTags ?
(CodeExpression)new CodePrimitiveExpression(null) :
new CodeArrayCreateExpression(typeof(string[]), exampleTagExpressionList.ToArray());
args.Add(new CodeAttributeArgument(exampleTagsExpression));
// adds 'Category' named parameter so that NUnit also understands that this test case belongs to the given categories
if (hasExampleTags)
{
CodeExpression exampleTagsStringExpr = new CodePrimitiveExpression(string.Join(",", tags.ToArray()));
args.Add(new CodeAttributeArgument("Category", exampleTagsStringExpr));
}
if (isIgnored)
args.Add(new CodeAttributeArgument("Ignored", new CodePrimitiveExpression(true)));
CodeDomHelper.AddAttribute(testMethod, ROW_ATTR, args.ToArray());
}
开发者ID:citizenmatt,项目名称:SpecFlow,代码行数:25,代码来源:NUnitTestGeneratorProvider.cs
示例5: GetCodeExpression
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
if (!entry.Expression.Contains(","))
{
throw new ArgumentException("Must include two numbers separated by a comma.");
}
else
{
// get two numbers
string[] numbers = entry.Expression.Split(',');
if (numbers.Length != 2)
{
throw new ArgumentException("Only include two numbers");
}
else
{
int lowerLimit, upperLimit;
if (Int32.TryParse(numbers[0], out lowerLimit) && Int32.TryParse(numbers[1], out upperLimit))
{
CodeTypeReferenceExpression typeRef = new CodeTypeReferenceExpression(this.GetType());
CodeExpression[] methodParameters = new CodeExpression[2];
methodParameters[0] = new CodePrimitiveExpression(lowerLimit);
methodParameters[1] = new CodePrimitiveExpression(upperLimit);
return new CodeMethodInvokeExpression(typeRef, "GetRandomNumber", methodParameters);
}
else
{
throw new ArgumentException("Use valid Integers");
}
}
}
}
开发者ID:bq-wang,项目名称:aspnet,代码行数:33,代码来源:RandomNumberExpressionBuilder.cs
示例6: ConvertTo
protected CodeExpression ConvertTo(string value, Type type)
{
var valueExpression = new CodePrimitiveExpression(value);
var converter = TypeDescriptor.GetConverter(type);
if (type == typeof(string) || type == typeof(object))
return valueExpression;
if (type == typeof(double))
return new CodePrimitiveExpression(double.Parse(value, CultureInfo.InvariantCulture));
if (type == typeof(BindingBase))
{
var bindingParser = new BindingParser(State);
var bindingVariableName = bindingParser.Parse(value);
return new CodeVariableReferenceExpression(bindingVariableName);
}
// there is no conversion availabe, the generated code won't compile, but there is nothing we can do about that
if (converter == null)
return valueExpression;
var conversion = new CodeCastExpression(
type.Name,
new CodeMethodInvokeExpression(
new CodeMethodInvokeExpression(new CodeTypeReferenceExpression("TypeDescriptor"), "GetConverter",
new CodeTypeOfExpression(type.Name)), "ConvertFromInvariantString",
new CodePrimitiveExpression(value)));
return conversion;
}
开发者ID:huinalam,项目名称:XAML-conversion,代码行数:32,代码来源:ParserBase.cs
示例7: Constructor1_Deny_Unrestricted
public void Constructor1_Deny_Unrestricted ()
{
object o = new object ();
CodePrimitiveExpression cpe = new CodePrimitiveExpression (o);
Assert.AreSame (o, cpe.Value, "Value");
cpe.Value = new object ();
}
开发者ID:nlhepler,项目名称:mono,代码行数:7,代码来源:CodePrimitiveExpressionCas.cs
示例8: AppendCreateDictionaryLocalVariable
private static string AppendCreateDictionaryLocalVariable(string dictionary, CodeDomClassBuilder builder)
{
var parser = new AttributeParser(dictionary);
parser.Parse();
var keyValuePairType = new CodeTypeReference(typeof(KeyValuePair<string,object>));
var createDictionaryMethod = new CodeMethodInvokeExpression();
foreach (var attribute in parser.Attributes)
{
var newKeyValueExpression = new CodeObjectCreateExpression {CreateType = keyValuePairType};
var keyExpression = new CodePrimitiveExpression {Value = attribute.Name};
newKeyValueExpression.Parameters.Add(keyExpression);
if (attribute.Type == ParsedAttributeType.String)
{
AppendStringDictValue(attribute, newKeyValueExpression);
}
else
{
newKeyValueExpression.Parameters.Add(new CodeSnippetExpression
{
Value = attribute.Value
});
}
createDictionaryMethod.Parameters.Add(newKeyValueExpression);
}
var getDictionaryMethod = new CodeMethodReferenceExpression
{
MethodName = "GetDictionaryFromKeyValue",
TargetObject =
new CodeVariableReferenceExpression
{
VariableName = "NHamlMonoRailView"
}
};
createDictionaryMethod.Method = getDictionaryMethod;
var variableName = string.Format("nhamlTempDictionary{0}", tempDictionaryCount);
tempDictionaryCount++;
var dictionaryDecleration = new CodeVariableDeclarationStatement
{
InitExpression = createDictionaryMethod,
Name = variableName,
Type = new CodeTypeReference(typeof (IDictionary<string, object>))
};
builder.RenderMethod.Statements.Add(dictionaryDecleration);
return variableName;
}
开发者ID:mgagne-atman,项目名称:Projects,代码行数:59,代码来源:ComponentMarkupRule.cs
示例9: TypescriptPrimitiveExpression
public TypescriptPrimitiveExpression(
CodePrimitiveExpression codeExpression,
CodeGeneratorOptions options)
{
_codeExpression = codeExpression;
_options = options;
System.Diagnostics.Debug.WriteLine("TypescriptPrimitiveExpression Created");
}
开发者ID:s2quake,项目名称:TypescriptCodeDom,代码行数:8,代码来源:TypescriptPrimitiveExpression.cs
示例10: GetStringArrayAttributeArgument
public static CodeAttributeArgument GetStringArrayAttributeArgument(string[] values)
{
CodeExpression[] initializers = new CodeExpression[values.Length];
for (int i = 0; i < values.Length; i++)
initializers[i] = new CodePrimitiveExpression(values[i]);
return new CodeAttributeArgument(new CodeArrayCreateExpression(typeof(string), initializers));
}
开发者ID:mgagne-atman,项目名称:Projects,代码行数:8,代码来源:AttributeHelper.cs
示例11: CreateDataArray
private static CodeExpression CreateDataArray(byte[] data)
{
CodeExpression[] initializers = new CodeExpression[data.Length];
for (int i = 0; i < data.Length; i++)
{
initializers[i] = new CodePrimitiveExpression(data[i]);
}
return new CodeArrayCreateExpression(typeof(byte), initializers);
}
开发者ID:RickeyWard,项目名称:Rockband-DrumKit-for-Windows,代码行数:9,代码来源:MidiCodeGenerator.cs
示例12: AddXmlEnumAttribute
private static void AddXmlEnumAttribute(CodeTypeMember member)
{
CodeTypeReference attributeType = new CodeTypeReference(typeof (XmlEnumAttribute));
CodePrimitiveExpression argumentValue = new CodePrimitiveExpression(member.Name);
CodeAttributeArgument argument = new CodeAttributeArgument(argumentValue);
CodeAttributeDeclaration attribute = new CodeAttributeDeclaration(attributeType, argument);
member.CustomAttributes.Add(attribute);
}
开发者ID:hazzik,项目名称:nh-contrib-everything,代码行数:9,代码来源:ImproveEnumFieldsCommand.cs
示例13: GetCodeExpression
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
string property = (string) parsedData;
CodePrimitiveExpression prim = new CodePrimitiveExpression(property);
CodeExpression[] args = new[] {prim};
CodeTypeReferenceExpression refType = new CodeTypeReferenceExpression(this.GetType());
return new CodeMethodInvokeExpression(refType, "GetProperty", args);
}
开发者ID:dreamer777,项目名称:My.Common,代码行数:9,代码来源:ConfigExpressionBuilder.cs
示例14: AddRootElementName
private static void AddRootElementName(CodeTypeMember type)
{
foreach (CodeAttributeDeclaration attribute in type.CustomAttributes)
if (attribute.Name == typeof (XmlRootAttribute).FullName)
{
CodePrimitiveExpression value = new CodePrimitiveExpression(type.Name);
CodeAttributeArgument argument = new CodeAttributeArgument("", value);
attribute.Arguments.Insert(0, argument);
}
}
开发者ID:hazzik,项目名称:nh-contrib-everything,代码行数:10,代码来源:ImproveTypeNamesCommand.cs
示例15: GetCodeExpression
/// <summary>
/// When overridden in a derived class, returns code that is used during page execution to obtain the evaluated expression.
/// </summary>
/// <param name="entry">The object that represents information about the property bound to by the expression.</param>
/// <param name="parsedData">The object containing parsed data as returned by <see cref="M:System.Web.Compilation.ExpressionBuilder.ParseExpression(System.String,System.Type,System.Web.Compilation.ExpressionBuilderContext)" />.</param>
/// <param name="context">Contextual information for the evaluation of the expression.</param>
/// <returns>
/// A <see cref="T:System.CodeDom.CodeExpression" /> that is used for property assignment.
/// </returns>
public override CodeExpression GetCodeExpression( BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context )
{
// from http://msdn.microsoft.com/en-us/library/system.web.compilation.expressionbuilder.getcodeexpression.aspx
Type type1 = entry.DeclaringType;
PropertyDescriptor descriptor1 = TypeDescriptor.GetProperties( type1 )[entry.PropertyInfo.Name];
CodeExpression[] expressionArray1 = new CodeExpression[3];
expressionArray1[0] = new CodePrimitiveExpression( entry.Expression.Trim() );
expressionArray1[1] = new CodeTypeOfExpression( type1 );
expressionArray1[2] = new CodePrimitiveExpression( entry.Name );
return new CodeCastExpression( descriptor1.PropertyType, new CodeMethodInvokeExpression( new CodeTypeReferenceExpression( base.GetType() ), "GetEvalData", expressionArray1 ) );
}
开发者ID:tcavaletto,项目名称:Rock-CentralAZ,代码行数:20,代码来源:FingerprintExpressionBuilder.cs
示例16: CreateDataArray
/// <summary>Creates a code expression that creates a byte array of data.</summary>
/// <param name="data">The data to translate.</param>
/// <returns>The code expression representing the array.</returns>
private static CodeExpression CreateDataArray(byte [] data)
{
// Create an array of code expressions, each one a byte primitive
CodeExpression [] initializers = new CodeExpression[data.Length];
for(int i=0; i<data.Length; i++)
{
initializers[i] = new CodePrimitiveExpression(data[i]);
}
// Create the array of bytes used the created initialization list
return new CodeArrayCreateExpression(typeof(byte), initializers);
}
开发者ID:alpensturm,项目名称:windows,代码行数:15,代码来源:MidiCodeGenerator.cs
示例17: GetCodeExpression
public override CodeExpression GetCodeExpression(System.Web.UI.BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
_log.Write(_id, SPTraceLogger.TraceSeverity.InformationEvent, "GetCodeExpression", "Info", "Called");
CodeTypeReferenceExpression thisType = new CodeTypeReferenceExpression(base.GetType());
CodePrimitiveExpression expression = new CodePrimitiveExpression(entry.Expression.Trim().ToString());
string evaluationMethod = "GetKeyValue";
return new CodeMethodInvokeExpression(thisType, evaluationMethod, new CodeExpression[] { expression });
}
开发者ID:powareverb,项目名称:SPExpressionBuilder,代码行数:12,代码来源:SPUrlExpressionBuilder.cs
示例18: GenerateConstructorStatements
internal static void GenerateConstructorStatements(CodeConstructor ctor, string url, string appSettingUrlKey, string appSettingBaseUrl, bool soap11)
{
bool flag = (url != null) && (url.Length > 0);
bool flag2 = (appSettingUrlKey != null) && (appSettingUrlKey.Length > 0);
CodeAssignStatement statement = null;
if (flag || flag2)
{
CodeExpression expression;
CodePropertyReferenceExpression left = new CodePropertyReferenceExpression(new CodeThisReferenceExpression(), "Url");
if (flag)
{
expression = new CodePrimitiveExpression(url);
statement = new CodeAssignStatement(left, expression);
}
if (flag && !flag2)
{
ctor.Statements.Add(statement);
}
else if (flag2)
{
CodeVariableReferenceExpression expression3 = new CodeVariableReferenceExpression("urlSetting");
CodeTypeReferenceExpression targetObject = new CodeTypeReferenceExpression(typeof(ConfigurationManager));
CodePropertyReferenceExpression expression5 = new CodePropertyReferenceExpression(targetObject, "AppSettings");
expression = new CodeIndexerExpression(expression5, new CodeExpression[] { new CodePrimitiveExpression(appSettingUrlKey) });
ctor.Statements.Add(new CodeVariableDeclarationStatement(typeof(string), "urlSetting", expression));
if ((appSettingBaseUrl == null) || (appSettingBaseUrl.Length == 0))
{
expression = expression3;
}
else
{
if ((url == null) || (url.Length == 0))
{
throw new ArgumentException(Res.GetString("IfAppSettingBaseUrlArgumentIsSpecifiedThen0"));
}
string str = new Uri(appSettingBaseUrl).MakeRelative(new Uri(url));
CodeExpression[] parameters = new CodeExpression[] { expression3, new CodePrimitiveExpression(str) };
expression = new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(typeof(string)), "Concat", parameters);
}
CodeStatement[] trueStatements = new CodeStatement[] { new CodeAssignStatement(left, expression) };
CodeBinaryOperatorExpression condition = new CodeBinaryOperatorExpression(expression3, CodeBinaryOperatorType.IdentityInequality, new CodePrimitiveExpression(null));
if (flag)
{
ctor.Statements.Add(new CodeConditionStatement(condition, trueStatements, new CodeStatement[] { statement }));
}
else
{
ctor.Statements.Add(new CodeConditionStatement(condition, trueStatements));
}
}
}
}
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:52,代码来源:ProtocolImporterUtil.cs
示例19: GetCodeExpression
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
var expression = new CodeExpression[3];
expression[0] = new CodePrimitiveExpression(entry.Expression.Trim());
expression[1] = new CodeTypeOfExpression(typeof(string));
expression[2] = new CodePrimitiveExpression(entry.Name);
return new CodeCastExpression(typeof(string),
new CodeMethodInvokeExpression(
new CodeTypeReferenceExpression(GetType()), "GetEvalData",
expression));
}
开发者ID:benmcevoy,项目名称:FatDividends,代码行数:13,代码来源:FatExpressionBuilder.cs
示例20: Generate
public CodeExpression[] Generate(Table table, HardwireCodeGenerationContext generator,
CodeTypeMemberCollection members)
{
string type = (string)table["$key"];
string className = "TYPE_" + Guid.NewGuid().ToString("N");
CodeTypeDeclaration classCode = new CodeTypeDeclaration(className);
classCode.Comments.Add(new CodeCommentStatement("Descriptor of " + type));
classCode.StartDirectives.Add(new CodeRegionDirective(CodeRegionMode.Start, "Descriptor of " + type));
classCode.EndDirectives.Add(new CodeRegionDirective(CodeRegionMode.End, string.Empty));
classCode.TypeAttributes = System.Reflection.TypeAttributes.NestedPrivate | System.Reflection.TypeAttributes.Sealed;
classCode.BaseTypes.Add(typeof(HardwiredUserDataDescriptor));
CodeConstructor ctor = new CodeConstructor();
ctor.Attributes = MemberAttributes.Assembly;
ctor.BaseConstructorArgs.Add(new CodeTypeOfExpression(type));
classCode.Members.Add(ctor);
generator.DispatchTablePairs(table.Get("members").Table,
classCode.Members, (key, exp) =>
{
var mname = new CodePrimitiveExpression(key);
ctor.Statements.Add(new CodeMethodInvokeExpression(
new CodeThisReferenceExpression(), "AddMember", mname, exp));
});
generator.DispatchTablePairs(table.Get("metamembers").Table,
classCode.Members, (key, exp) =>
{
var mname = new CodePrimitiveExpression(key);
ctor.Statements.Add(new CodeMethodInvokeExpression(
new CodeThisReferenceExpression(), "AddMetaMember", mname, exp));
});
members.Add(classCode);
return new CodeExpression[] {
new CodeObjectCreateExpression(className)
};
}
开发者ID:InfectedBytes,项目名称:moonsharp,代码行数:50,代码来源:StandardUserDataDescriptorGenerator.cs
注:本文中的System.CodeDom.CodePrimitiveExpression类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论