本文整理汇总了C#中System.CodeDom.CodeIndexerExpression类的典型用法代码示例。如果您正苦于以下问题:C# CodeIndexerExpression类的具体用法?C# CodeIndexerExpression怎么用?C# CodeIndexerExpression使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
CodeIndexerExpression类属于System.CodeDom命名空间,在下文中一共展示了CodeIndexerExpression类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Constructor0_Deny_Unrestricted
public void Constructor0_Deny_Unrestricted ()
{
CodeIndexerExpression cie = new CodeIndexerExpression ();
Assert.AreEqual (0, cie.Indices.Count, "Indices");
Assert.IsNull (cie.TargetObject, "TargetObject");
cie.TargetObject = new CodeExpression ();
}
开发者ID:nlhepler,项目名称:mono,代码行数:7,代码来源:CodeIndexerExpressionCas.cs
示例2: DeserializeAppConfigExpression
private static CodePropertyReferenceExpression DeserializeAppConfigExpression(string[] expressionParts)
{
int index = expressionParts.Length - 1;
CodePropertyReferenceExpression expression = new CodePropertyReferenceExpression {
PropertyName = expressionParts[index]
};
index--;
CodeIndexerExpression expression2 = new CodeIndexerExpression();
expression.TargetObject = expression2;
expression2.Indices.Add(new CodePrimitiveExpression(expressionParts[index]));
index--;
CodePropertyReferenceExpression expression3 = new CodePropertyReferenceExpression();
expression2.TargetObject = expression3;
expression3.PropertyName = expressionParts[index];
index--;
CodeTypeReferenceExpression expression4 = new CodeTypeReferenceExpression();
expression3.TargetObject = expression4;
expression4.Type.Options = (CodeTypeReferenceOptions) Enum.Parse(typeof(CodeTypeReferenceOptions), expressionParts[index]);
index--;
expression4.Type.BaseType = expressionParts[index];
index--;
while (index > 0)
{
expression4.Type.BaseType = expressionParts[index] + "." + expression4.Type.BaseType;
index--;
}
return expression;
}
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:28,代码来源:PropertyReferenceSerializer.cs
示例3: Clone
public static CodeIndexerExpression Clone(this CodeIndexerExpression expression)
{
if (expression == null) return null;
CodeIndexerExpression e = new CodeIndexerExpression();
e.Indices.AddRange(expression.Indices.Clone());
e.TargetObject = expression.TargetObject.Clone();
e.UserData.AddRange(expression.UserData);
return e;
}
开发者ID:svejdo1,项目名称:CodeDomExtensions,代码行数:9,代码来源:CodeIndexerExpressionExtensions.cs
示例4: Constructor1_Deny_Unrestricted
public void Constructor1_Deny_Unrestricted ()
{
CodeExpression target = new CodeExpression ();
CodeExpression[] indices = new CodeExpression[1] { target };
CodeIndexerExpression cie = new CodeIndexerExpression (target, indices);
Assert.AreEqual (1, cie.Indices.Count, "Indices");
Assert.AreSame (target, cie.TargetObject, "TargetObject");
cie.TargetObject = new CodeExpression ();
}
开发者ID:nlhepler,项目名称:mono,代码行数:9,代码来源:CodeIndexerExpressionCas.cs
示例5: TypescriptIndexerExpression
public TypescriptIndexerExpression(
IExpressionFactory expressionFactory,
CodeIndexerExpression codeExpression,
CodeGeneratorOptions options)
{
_codeExpression = codeExpression;
_options = options;
_expressionFactory = expressionFactory;
System.Diagnostics.Debug.WriteLine("TypescriptIndexerExpression Created");
}
开发者ID:s2quake,项目名称:TypescriptCodeDom,代码行数:10,代码来源:TypescriptIndexerExpression.cs
示例6: 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
示例7: Emit
// Generates a codedom indexed identifier: one that is an identifier followed by an indexer: ex foo[1].
public static CodeExpression Emit(IndexedIdentifier indexedIdentifier)
{
// Create the codedom indexer expression
var codeIndex = new CodeIndexerExpression();
// Set the object that is being indexed.
codeIndex.TargetObject = new CodeVariableReferenceExpression(indexedIdentifier.Name);
// Set the expression that is generating the index.
codeIndex.Indices.Add(CodeDomEmitter.EmitCodeExpression(indexedIdentifier.ChildExpressions[0]));
return codeIndex;
}
开发者ID:maleficus1234,项目名称:Pie,代码行数:14,代码来源:IndexedIdentifierEmitter.cs
示例8: SetScenarioSetup
public virtual void SetScenarioSetup(CodeMemberMethod memberMethod)
{
//ScenarioContext
var scenarioContext = new CodeTypeReferenceExpression("ScenarioContext");
// .Current
var currentContext = new CodePropertyReferenceExpression(scenarioContext, "Current");
// ["SomeKey"]
var indexer = new CodeIndexerExpression(currentContext, new CodePrimitiveExpression(CALLING_FEATURE_KEY));
// = this;
var assignMent = new CodeAssignStatement(indexer, new CodeThisReferenceExpression());
//ScenarioContext.Current["SomeKey"] = this;
memberMethod.Statements.Add(assignMent);
}
开发者ID:jwcarroll,项目名称:SpecFlow,代码行数:17,代码来源:MsTestSilverlightAsyncGeneratorProvider.cs
示例9: ToClass
public CodeTypeDeclaration ToClass()
{
var cs = new CodeTypeDeclaration(this.Name);
var iname = "I" + cs.Name;
if (cs.Name.Contains('`'))
{
cs.Name = cs.Name.Substring(0, cs.Name.Length - 2);
if (cs.Name.EndsWith("Base"))
{
iname = "I" + cs.Name.Substring(0, cs.Name.Length - 4);
}
cs.Name += "<T>";
}
if (iname != null)
{
cs.BaseTypes.Add(new CodeTypeReference(iname));
}
cs.IsPartial = true;
foreach (var p in Properties)
{
if (p.IsInherited) continue;
var prop = new CodeMemberProperty();
prop.Attributes = MemberAttributes.Public | MemberAttributes.Final;
prop.Name = p.Name;
prop.Type = new CodeTypeReference(p.Type);
prop.HasGet = true;
prop.HasSet = false;
var indexer = new CodeIndexerExpression(new CodeThisReferenceExpression(), new CodePrimitiveExpression(p.Name));
var cast = new CodeCastExpression(prop.Type, indexer);
prop.GetStatements.Add(new CodeMethodReturnStatement(cast));
cs.Members.Add(prop);
}
return cs;
}
开发者ID:mrkurt,项目名称:mubble-old,代码行数:43,代码来源:TypeCollection.cs
示例10: BuildControlSkinAssignmentStatement
private CodeStatement BuildControlSkinAssignmentStatement(ControlBuilder builder, string skinID)
{
Type controlType = builder.ControlType;
string name = base.GetMethodNameForBuilder(BaseTemplateCodeDomTreeGenerator.buildMethodPrefix, builder) + "_skinKey";
CodeMemberField field = new CodeMemberField(typeof(object), name) {
Attributes = MemberAttributes.Private | MemberAttributes.Static
};
CodeMethodInvokeExpression expression = new CodeMethodInvokeExpression {
Method = new CodeMethodReferenceExpression(new CodeTypeReferenceExpression(typeof(PageTheme)), "CreateSkinKey")
};
expression.Parameters.Add(new CodeTypeOfExpression(controlType));
expression.Parameters.Add(new CodePrimitiveExpression(skinID));
field.InitExpression = expression;
base._sourceDataClass.Members.Add(field);
CodeFieldReferenceExpression targetObject = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "__controlSkins");
CodeIndexerExpression left = new CodeIndexerExpression(targetObject, new CodeExpression[] { new CodeVariableReferenceExpression(name) });
CodeDelegateCreateExpression expression4 = new CodeDelegateCreateExpression(this._controlSkinDelegateType, new CodeThisReferenceExpression(), base.GetMethodNameForBuilder(BaseTemplateCodeDomTreeGenerator.buildMethodPrefix, builder));
CodeObjectCreateExpression right = new CodeObjectCreateExpression(this._controlSkinType, new CodeExpression[0]);
right.Parameters.Add(new CodeTypeOfExpression(controlType));
right.Parameters.Add(expression4);
return new CodeAssignStatement(left, right);
}
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:22,代码来源:PageThemeCodeDomTreeGenerator.cs
示例11: Emit
public void Emit (CodeTypeDeclaration ctd, CodeMemberMethod copy, CodeExpression copyarray,
CodeMemberMethod clone, CodeExpression other)
{
// The field itself
CodeMemberField f = new CodeMemberField ();
f.Name = Name;
f.Attributes = MemberAttributes.Public;
f.LinePragma = Line;
f.Type = Type.AsCodeDom;
f.CustomAttributes.Add (FieldAttr);
ctd.Members.Add (f);
// Copy statement in CopyItems
CodeIndexerExpression index = new CodeIndexerExpression ();
index.TargetObject = copyarray;
index.Indices.Add (ResultBuilder.BasePlusN (Idx));
CodeFieldReferenceExpression fld = CDH.ThisDot (Name);
CodeMethodInvokeExpression conv =
new CodeMethodInvokeExpression (CDH.This, "FieldAsResult",
new CodeExpression[] { fld });
CodeAssignStatement assg =
new CodeAssignStatement (index, conv);
copy.Statements.Add (assg);
// Add statement to clone result in CloneItems
CodeFieldReferenceExpression lhs =
new CodeFieldReferenceExpression (other, Name);
conv = new CodeMethodInvokeExpression (CDH.This, "CloneField",
new CodeExpression[] { fld });
assg = new CodeAssignStatement (lhs, new CodeCastExpression (f.Type, conv));
clone.Statements.Add (assg);
}
开发者ID:emtees,项目名称:old-code,代码行数:37,代码来源:ResultBuilder.cs
示例12: Correct
private void Correct(ref CodeObject target, CodeObject parent, int indent)
{
if (target is CodeVariableReferenceExpression)
{
CodeVariableReferenceExpression variableExpr = (CodeVariableReferenceExpression) target;
if (StringUtils.CaseInsensitiveEquals(variableExpr.VariableName, _setValueName))
{
variableExpr.VariableName = _propertyName;
}
}
else if (target is CodeMethodInvokeExpression)
{
CodeMethodInvokeExpression methodInvokeExpr = (CodeMethodInvokeExpression) target;
if (methodInvokeExpr.Method.TargetObject == null && StringUtils.CaseInsensitiveEquals(methodInvokeExpr.Method.MethodName, _setValueName))
{
CodeIndexerExpression indexerExpr = new CodeIndexerExpression(
new CodeVariableReferenceExpression(_propertyName));
indexerExpr.Indices.AddRange(methodInvokeExpr.Parameters);
target = indexerExpr;
}
}
}
开发者ID:Saleslogix,项目名称:SLXMigration,代码行数:24,代码来源:PropertySetValueCorrector.cs
示例13: GenerateSetAdaptersCode
internal void GenerateSetAdaptersCode(BrowserDefinition bd, CodeMemberMethod cmm)
{
foreach (DictionaryEntry entry in bd.Adapters)
{
string key = (string) entry.Key;
string str2 = (string) entry.Value;
CodePropertyReferenceExpression targetObject = new CodePropertyReferenceExpression(this._browserCapsRefExpr, "Adapters");
CodeIndexerExpression expression2 = new CodeIndexerExpression(targetObject, new CodeExpression[] { new CodePrimitiveExpression(key) });
CodeAssignStatement statement = new CodeAssignStatement {
Left = expression2,
Right = new CodePrimitiveExpression(str2)
};
cmm.Statements.Add(statement);
}
if (bd.HtmlTextWriterString != null)
{
CodeAssignStatement statement2 = new CodeAssignStatement {
Left = new CodePropertyReferenceExpression(this._browserCapsRefExpr, "HtmlTextWriter"),
Right = new CodePrimitiveExpression(bd.HtmlTextWriterString)
};
cmm.Statements.Add(statement2);
}
}
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:23,代码来源:BrowserCapabilitiesCodeGenerator.cs
示例14: GenerateIndexerExpression
protected override void GenerateIndexerExpression(CodeIndexerExpression e)
{
base.GenerateExpression(e.TargetObject);
if (e.TargetObject is CodeBaseReferenceExpression)
{
base.Output.Write(".Item");
}
base.Output.Write("(");
bool flag = true;
foreach (CodeExpression expression in e.Indices)
{
if (flag)
{
flag = false;
}
else
{
base.Output.Write(", ");
}
base.GenerateExpression(expression);
}
base.Output.Write(")");
}
开发者ID:laymain,项目名称:CodeDomUtils,代码行数:23,代码来源:VBCodeGenerator.cs
示例15: GenerateIndexerExpression
protected override void GenerateIndexerExpression (CodeIndexerExpression e)
{
}
开发者ID:Profit0004,项目名称:mono,代码行数:3,代码来源:CodeGeneratorCas.cs
示例16: GenerateSetAdaptersCode
//generate part of the xxxProcess method for setting specific adapters for this browser
internal void GenerateSetAdaptersCode(BrowserDefinition bd, CodeMemberMethod cmm) {
//GEN: browserCaps.Adapters[xxxControl] = yyyAdapter;
foreach (DictionaryEntry entry in bd.Adapters) {
string controlString = (string)entry.Key;
string adapterString = (string)entry.Value;
CodePropertyReferenceExpression cpre = new CodePropertyReferenceExpression(_browserCapsRefExpr, "Adapters");
CodeIndexerExpression indexerExpression = new CodeIndexerExpression(
cpre,
new CodeExpression[] { new CodePrimitiveExpression(controlString) }
);
CodeAssignStatement assignAdapter = new CodeAssignStatement();
assignAdapter.Left = indexerExpression;
assignAdapter.Right = new CodePrimitiveExpression(adapterString);
cmm.Statements.Add(assignAdapter);
}
//GEN: browser.HtmlTextWriter = xxxHtmlTextWriter;
if(bd.HtmlTextWriterString != null) {
CodeAssignStatement assignHtmlTextWriter = new CodeAssignStatement();
assignHtmlTextWriter.Left = new CodePropertyReferenceExpression(_browserCapsRefExpr, "HtmlTextWriter");
assignHtmlTextWriter.Right = new CodePrimitiveExpression(bd.HtmlTextWriterString);
cmm.Statements.Add(assignHtmlTextWriter);
}
return;
}
开发者ID:ItsVeryWindy,项目名称:mono,代码行数:26,代码来源:BrowserCapabilitiesCodeGenerator.cs
示例17: GenerateConstructorStatements
internal static void GenerateConstructorStatements(CodeConstructor ctor, string url, string appSettingUrlKey, string appSettingBaseUrl, bool soap11) {
CodeExpression value;
bool generateFixedUrlAssignment = (url != null && url.Length > 0);
bool generateConfigUrlAssignment = appSettingUrlKey != null && appSettingUrlKey.Length > 0;
CodeAssignStatement assignUrlStatement = null;
if (!generateFixedUrlAssignment && !generateConfigUrlAssignment)
return;
// this.Url property
CodePropertyReferenceExpression urlPropertyReference = new CodePropertyReferenceExpression(new CodeThisReferenceExpression(), "Url");
if (generateFixedUrlAssignment) {
value = new CodePrimitiveExpression(url);
assignUrlStatement = new CodeAssignStatement(urlPropertyReference, value);
}
if (generateFixedUrlAssignment && !generateConfigUrlAssignment) {
ctor.Statements.Add(assignUrlStatement);
}
else if (generateConfigUrlAssignment) {
// urlSetting local variable
CodeVariableReferenceExpression urlSettingReference = new CodeVariableReferenceExpression("urlSetting");
// Generate: string urlSetting = System.Configuration.ConfigurationManager.AppSettings["<appSettingUrlKey>"];
CodeTypeReferenceExpression codeTypeReference = new CodeTypeReferenceExpression(typeof(ConfigurationManager));
CodePropertyReferenceExpression propertyReference = new CodePropertyReferenceExpression(codeTypeReference, "AppSettings");
value = new CodeIndexerExpression(propertyReference, new CodeExpression[] { new CodePrimitiveExpression(appSettingUrlKey) });
ctor.Statements.Add(new CodeVariableDeclarationStatement(typeof(string), "urlSetting", value));
if (appSettingBaseUrl == null || appSettingBaseUrl.Length == 0) {
// Generate: this.Url = urlSetting;
value = urlSettingReference;
}
else {
// Generate: this.Url = "http://localhost/mywebapplication/simple.asmx";
if (url == null || url.Length == 0)
throw new ArgumentException(Res.GetString(Res.IfAppSettingBaseUrlArgumentIsSpecifiedThen0));
string relativeUrl = new Uri(appSettingBaseUrl).MakeRelative(new Uri(url));
CodeExpression[] parameters = new CodeExpression[] { urlSettingReference, new CodePrimitiveExpression(relativeUrl) };
value = new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(typeof(System.String)), "Concat", parameters);
}
CodeStatement[] trueStatements = new CodeStatement[] { new CodeAssignStatement(urlPropertyReference, value) };
// Generate: if (urlSetting != null) { <truestatement> } else { <falsestatement> }
CodeBinaryOperatorExpression checkIfNull = new CodeBinaryOperatorExpression(urlSettingReference, CodeBinaryOperatorType.IdentityInequality, new CodePrimitiveExpression(null));
if (generateFixedUrlAssignment)
ctor.Statements.Add(new CodeConditionStatement(checkIfNull, trueStatements, new CodeStatement[] { assignUrlStatement }));
else
ctor.Statements.Add(new CodeConditionStatement(checkIfNull, trueStatements));
}
}
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:52,代码来源:ProtocolImporter.cs
示例18: GenerateIndexerExpression
protected override void GenerateIndexerExpression(CodeIndexerExpression e)
{
Output.Write("[CodeIndexerExpression: {0}]", e.ToString());
}
开发者ID:2594636985,项目名称:SharpDevelop,代码行数:4,代码来源:CodeDOMVerboseOutputGenerator.cs
示例19: Visit
public void Visit (CodeIndexerExpression o)
{
g.GenerateIndexerExpression (o);
}
开发者ID:carrie901,项目名称:mono,代码行数:4,代码来源:CodeGenerator.cs
示例20: ParseBaseExpression
//.........这里部分代码省略.........
if (IsKeyword("refnotequal"))
{
CodeBinaryOperatorExpression cboe = new CodeBinaryOperatorExpression();
cboe.Operator = CodeBinaryOperatorType.IdentityInequality;
GetNextToken();
Expect(CDILToken.LeftParen);
cboe.Left = ParseExpression();
Expect(CDILToken.Comma);
cboe.Right = ParseExpression();
Expect(CDILToken.RightParen);
return cboe;
}
if (IsKeyword("arrayitem"))
{
GetNextToken();
Expect(CDILToken.LeftParen);
CodeArrayIndexerExpression caie = new CodeArrayIndexerExpression();
caie.TargetObject = ParseExpression();
while (TokenType == CDILToken.Comma)
{
Expect(CDILToken.Comma);
caie.Indices.Add(ParseExpression());
}
Expect(CDILToken.RightParen);
return caie;
}
if (IsKeyword("index"))
{
GetNextToken();
Expect(CDILToken.LeftParen);
CodeIndexerExpression cie = new CodeIndexerExpression();
cie.TargetObject = ParseExpression();
while (TokenType == CDILToken.Comma)
{
Expect(CDILToken.Comma);
cie.Indices.Add(ParseExpression());
}
Expect(CDILToken.RightParen);
return cie;
}
if (IsKeyword("var"))
{
GetNextToken();
Expect(CDILToken.LeftParen);
string name = EatKeyword();
Expect(CDILToken.RightParen);
return new CodeVariableReferenceExpression(name);
}
if (IsKeyword("defaultscope"))
{
GetNextToken();
return null;
}
if (IsKeyword("ref"))
{
GetNextToken();
Expect(CDILToken.LeftParen);
CodeExpression expr = ParseExpression();
Expect(CDILToken.RightParen);
return new CodeDirectionExpression(FieldDirection.Ref, expr);
开发者ID:valery-shinkevich,项目名称:sooda,代码行数:67,代码来源:CDILParser.cs
注:本文中的System.CodeDom.CodeIndexerExpression类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论