当前位置: 首页>>代码示例>>C#>>正文


C# CodeDom.CodeMemberField类代码示例

本文整理汇总了C#中System.CodeDom.CodeMemberField的典型用法代码示例。如果您正苦于以下问题:C# CodeMemberField类的具体用法?C# CodeMemberField怎么用?C# CodeMemberField使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


CodeMemberField类属于System.CodeDom命名空间,在下文中一共展示了CodeMemberField类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: DeclareCodeType

        public override void DeclareCodeType(IDLInterface idlIntf)
        {
            // Proxy class.
            typeProxy = new CodeTypeDeclaration(name + "Proxy");
            typeProxy.IsClass = true;
            typeProxy.TypeAttributes = TypeAttributes.Public;
            eventsDeclarationHolder = new CodeTypeDeferredNamespaceDeclarationHolderEvents(idlIntf);
            typeProxy.BaseTypes.Add(genInterfaceName);

            // Interface field.
            CodeMemberField memberProxy = new CodeMemberField(genInterfaceName, proxyName);
            memberProxy.Attributes = MemberAttributes.Private;
            typeProxy.Members.Add(memberProxy); // TODO: Going to need a using or a fully qualified name.

            // Constructor.
            CodeConstructor constructor = new CodeConstructor();
            constructor.Attributes = MemberAttributes.Public;
            // TODO - use the actual interface type rather than a string.
            paramProxy = new CodeParameterDeclarationExpression(genInterfaceName, proxyName);
            constructor.Parameters.Add(paramProxy);
            thisProxyFieldRef = new CodeFieldReferenceExpression(
                new CodeThisReferenceExpression(), proxyName
            );
            assignProxy = new CodeAssignStatement(thisProxyFieldRef,
                new CodeArgumentReferenceExpression(proxyName));
            constructor.Statements.Add(assignProxy);
            typeProxy.Members.Add(constructor);

            declarationHolder = new CodeTypeIgnoredNamespaceDeclarationHolderParams(idlIntf);
            contextDeclarationHolder = declarationHolder;

            bAddNamespace = false;
        }
开发者ID:jean-edouard,项目名称:win-tools,代码行数:33,代码来源:ProxyBuilder.cs

示例2: AddFieldDeclaration

 internal static CodeMemberField AddFieldDeclaration(CodeTypeDeclaration type, MemberAttributes memberAttribute, string fieldType, string fieldName)
 {
     CodeMemberField cmf = new CodeMemberField(fieldType, fieldName);
     cmf.Attributes = memberAttribute;
     type.Members.Add(cmf);
     return cmf;
 }
开发者ID:JamesTryand,项目名称:NetSqlAzMan,代码行数:7,代码来源:CodeDomHelper.cs

示例3: ComposeTestTearDownMethod

        /// <summary>
        /// Compose additional items of the test TearDown method.
        /// </summary>
        /// <param name="teardownMethod">A reference to the TearDown method of the test.</param>
        /// <param name="testObjectMemberField">The member field of the object under test.</param>
        /// <param name="testObjectName">The name of the object under test.</param>
        /// <param name="testObjectType">Type of the object under test(OuT).</param>
        protected override void ComposeTestTearDownMethod(
            CodeMemberMethod teardownMethod,
            CodeMemberField testObjectMemberField,
            string testObjectName,
            Type testObjectType)
        {
            /*var invokeExpression = new CodeMethodInvokeExpression(
                new CodeTypeReferenceExpression("Assert"),
                "AreEqual",
                //new CodePrimitiveExpression("expected")
                new CodeFieldReferenceExpression(testObjectMemberField, "bla")
                , new CodeVariableReferenceExpression("actual"));*/
            var fieldRef1 =
                new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), testObjectMemberField.Name);

            // var objectCreate1 = new CodeObjectCreateExpression(testObjectName, new CodeExpression[] { });
            var as1 =
                new CodeAssignStatement(fieldRef1, new CodePrimitiveExpression(null));

            // new CodeAssignStatement(fieldRef1, objectCreate1);

            // Creates a statement using a code expression.
            // var expressionStatement = new CodeExpressionStatement(fieldRef1);
            teardownMethod.Statements.Add(as1);
            base.ComposeTestTearDownMethod(teardownMethod, testObjectMemberField, testObjectName, testObjectType);
        }
开发者ID:Jedzia,项目名称:NStub,代码行数:33,代码来源:CSharpMbUnitCodeGenerator.cs

示例4: CreateServiceField

 internal CodeMemberField CreateServiceField(string serviceClassName)
 {
     CodeMemberField serviceField;
     serviceField = new CodeMemberField(serviceClassName, ResourceBaseGenerator.ServiceFieldName);
     serviceField.Attributes = MemberAttributes.Final | MemberAttributes.Private;
     return serviceField;
 }
开发者ID:jithuin,项目名称:infogeezer,代码行数:7,代码来源:StandardServiceFieldResourceDecorator.cs

示例5: ProcessProperty

        protected override void ProcessProperty(CodeTypeDeclaration type, CodeMemberField field, CodeMemberProperty property)
        {
            if (property.Type.ArrayElementType == null) return; // Is array?

            if (property.Name == "Items" || property.Name == "ItemsElementName") return;

            CodeTypeReference genericType = new CodeTypeReference("System.Collections.Generic.List", new CodeTypeReference(property.Type.BaseType));

            property.Type = genericType;
            if (field != null) {
                field.Type = genericType;

                property.GetStatements.Insert(0,
                    // if
                    new CodeConditionStatement(
                        // field == null
                        new CodeBinaryOperatorExpression(
                            new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), field.Name),
                            CodeBinaryOperatorType.IdentityEquality,
                            new CodePrimitiveExpression(null)),
                        // field = new List<T>();
                        new CodeAssignStatement(
                            new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), field.Name),
                            new CodeObjectCreateExpression(genericType))));
            }
        }
开发者ID:dsrbecky,项目名称:ColladaDOM,代码行数:26,代码来源:ArraysToGenericExtension.cs

示例6: ListContainsConstant

 public static bool ListContainsConstant(List<CodeMemberField> constants, CodeMemberField c)
 {
     foreach (CodeMemberField d in constants)
         if (d.Name == c.Name)
             return true;
     return false;
 }
开发者ID:vhotur,项目名称:tao,代码行数:7,代码来源:SpecReader.cs

示例7: CreateUriField

 internal CodeMemberField CreateUriField(IService service)
 {
     var uri = new CodeMemberField(typeof(string), BaseUriName);
     uri.Attributes = MemberAttributes.Const | MemberAttributes.Private;
     uri.InitExpression = new CodePrimitiveExpression(service.BaseUri.ToString());
     return uri;
 }
开发者ID:nick0816,项目名称:LoggenCSG,代码行数:7,代码来源:VersionInformationServiceDecorator.cs

示例8: CreateNameField

 internal CodeMemberField CreateNameField(IService service)
 {
     var name = new CodeMemberField(typeof(string), NameName);
     name.Attributes = MemberAttributes.Const | MemberAttributes.Private;
     name.InitExpression = new CodePrimitiveExpression(service.Name);
     return name;
 }
开发者ID:nick0816,项目名称:LoggenCSG,代码行数:7,代码来源:VersionInformationServiceDecorator.cs

示例9: Serialize

 public override object Serialize(IDesignerSerializationManager manager, object value)
 {
     CodeExpression expression;
     CodeTypeDeclaration declaration = manager.Context[typeof(CodeTypeDeclaration)] as CodeTypeDeclaration;
     RootContext context = manager.Context[typeof(RootContext)] as RootContext;
     CodeStatementCollection statements = new CodeStatementCollection();
     if ((declaration != null) && (context != null))
     {
         CodeMemberField field = new CodeMemberField(typeof(IContainer), "components") {
             Attributes = MemberAttributes.Private
         };
         declaration.Members.Add(field);
         expression = new CodeFieldReferenceExpression(context.Expression, "components");
     }
     else
     {
         CodeVariableDeclarationStatement statement = new CodeVariableDeclarationStatement(typeof(IContainer), "components");
         statements.Add(statement);
         expression = new CodeVariableReferenceExpression("components");
     }
     base.SetExpression(manager, value, expression);
     CodeObjectCreateExpression right = new CodeObjectCreateExpression(typeof(Container), new CodeExpression[0]);
     CodeAssignStatement statement2 = new CodeAssignStatement(expression, right);
     statement2.UserData["IContainer"] = "IContainer";
     statements.Add(statement2);
     return statements;
 }
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:27,代码来源:ContainerCodeDomSerializer.cs

示例10: EmitField

        private void EmitField(CodeTypeDeclaration typeDecl, CodeTypeReference fieldType, bool hasDefault)
        {
            CodeMemberField memberField = new CodeMemberField(fieldType, Utils.FieldNameFromPropName(Item.Name));
            memberField.Attributes = MemberAttributes.Private;

            AttributeEmitter.AddGeneratedCodeAttribute(memberField);

            if (hasDefault)
            {
                if (this.Generator.UseDataServiceCollection)
                {
                    // new DataServiceCollection<T>(null, System.Data.Services.Client.TrackingMode.None, null, null, null);
                    // declare type is DataServiceCollection<T>
                    Debug.Assert(fieldType.TypeArguments.Count == 1, "Declare type is non generic.");

                    // new DataServiceCollection<[type]>(null, TrackingMode.None)
                    memberField.InitExpression = new CodeObjectCreateExpression(
                        fieldType,
                        new CodePrimitiveExpression(null),
                        new CodeFieldReferenceExpression(
                            new CodeTypeReferenceExpression(typeof(System.Data.Services.Client.TrackingMode)),
                            "None"));
                }
                else
                {
                    memberField.InitExpression = new CodeObjectCreateExpression(fieldType);
                }
            }

            typeDecl.Members.Add(memberField);
        }
开发者ID:nlh774,项目名称:DotNetReferenceSource,代码行数:31,代码来源:NavigationPropertyEmitter.cs

示例11: DumpToFile

        static void DumpToFile(string enumName, IEnumerable<string> names, int first)
        {
            // TODO: Необходимо задавать провайдер из параметров командной строки
            // по умолчанию брать Cpp провайдер
            var @enum = new CodeTypeDeclaration(enumName) {
                IsEnum = true,
            };

            foreach(var name in names) {
                var field = new CodeMemberField(string.Empty, name) {
                    InitExpression = new CodePrimitiveExpression(first),
                };
                @enum.Members.Add(field);
                first++;
            }

            var codeProvider = CodeDomProvider.CreateProvider("CSharp");
            var options = new CodeGeneratorOptions {
                BlankLinesBetweenMembers = false,
                BracingStyle = "C",
            };

            using(var writer = new StreamWriter(enumName + "." + codeProvider.FileExtension)) {
                codeProvider.GenerateCodeFromType(@enum, writer, options);
            }
        }
开发者ID:Gintama,项目名称:VoragineTools,代码行数:26,代码来源:Program.cs

示例12: enrichWrapType

		static void enrichWrapType(CodeTypeDeclaration wrap, TypeInfo type)
		{
			// implement IWrap<T>
			var typeRef = new CodeTypeReference(type, CodeTypeReferenceOptions.GlobalReference);
			var iwrap = new CodeTypeReference(typeof(IWrap<>).Name + "<" + "global::" + type.FullName + ">", CodeTypeReferenceOptions.GenericTypeParameter);
			wrap.BaseTypes.Add(iwrap);

			// implement interface with public members for  underlying object 
			var intf = new CodeTypeReference("I" + type.Name);
			wrap.BaseTypes.Add(intf);

			// create underlying object related stuff
			var _underlyingObject = new CodeMemberField(typeRef, "_underlyingObject") { Attributes = MemberAttributes.Private };
			wrap.Members.Add(_underlyingObject);
			var this_underlyingObject = new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), _underlyingObject.Name);
			var UnderlyingObject = new CodeMemberProperty();
			UnderlyingObject.Name = "UnderlyingObject";
			UnderlyingObject.HasGet = true;
			UnderlyingObject.HasSet = false;
			var ret = new CodeMethodReturnStatement(this_underlyingObject);
			UnderlyingObject.GetStatements.Add(ret);
			UnderlyingObject.Attributes = MemberAttributes.Public;
			UnderlyingObject.ImplementationTypes.Add(iwrap);
			UnderlyingObject.PrivateImplementationType = iwrap;
			UnderlyingObject.Type = typeRef;
			wrap.Members.Add(UnderlyingObject);

			addUnderlyingCtor(typeRef, this_underlyingObject, wrap);
			addCtors(type, typeRef, this_underlyingObject, wrap);
			addMethods(type, typeRef, this_underlyingObject, wrap);



		}
开发者ID:OpenSharp,项目名称:UnitWrappers,代码行数:34,代码来源:InstanceWraperizer.cs

示例13: AddProperties

        public ClassCreator AddProperties(string propertyName, Type propertyType)
        {
            var backingField = new CodeMemberField(propertyType, "_" + propertyName);
            _targetClass.Members.Add(backingField);

            // Declare the read-only Width property.
            var memberProperty = new CodeMemberProperty
            {
                Attributes = MemberAttributes.Public | MemberAttributes.Final,
                Name = propertyName,
                HasGet = true,
                HasSet = true,
                Type = new CodeTypeReference(propertyType)
            };

            memberProperty.GetStatements.Add(new CodeMethodReturnStatement(
                new CodeFieldReferenceExpression(
                    new CodeThisReferenceExpression(), "_" + propertyName)));

            memberProperty.SetStatements.Add(
                new CodeAssignStatement(new CodeFieldReferenceExpression(new CodeThisReferenceExpression(), "_" + propertyName),
                    new CodePropertySetValueReferenceExpression())
                );

            _targetClass.Members.Add(memberProperty);

            return this;
        }
开发者ID:ushipTomLaZelle,项目名称:SdkGenerator,代码行数:28,代码来源:Program.cs

示例14: Emit

        // Creates the codedom expression for a class variable, and attaches it to the given type.
        public static void Emit(CodeTypeDeclaration codeTypeDeclaration, ClassVariable classVariable)
        {
            var codeField = new CodeMemberField();
            codeTypeDeclaration.Members.Add(codeField);
            codeField.Name = classVariable.Name;
            codeField.Type = new CodeTypeReference(classVariable.TypeName);

            // Translate it's accessibility
            var attr = MemberAttributes.Public;
            switch(classVariable.Accessibility)
            {
                case Accessibility.Internal:
                    attr = MemberAttributes.FamilyAndAssembly;
                    break;
                case Accessibility.Private:
                    attr = MemberAttributes.Private;
                    break;
                case Accessibility.Protected:
                    attr = MemberAttributes.Family;
                    break;
            }

            // shared = static
            if (classVariable.IsShared)
                attr |= MemberAttributes.Static;

            // Final = const
            if (classVariable.IsFinal)
                attr |= MemberAttributes.Const;

            codeField.Attributes = attr;
        }
开发者ID:maleficus1234,项目名称:Pie,代码行数:33,代码来源:ClassVariableEmitter.cs

示例15: CreateMethods

		protected internal override void CreateMethods ()
		{
			CodeMemberField fld;
			CodeMemberProperty prop;

			/* override the following abstract PageTheme properties:
			   protected abstract string AppRelativeTemplateSourceDirectory { get; }
			   protected abstract IDictionary ControlSkins { get; }
			   protected abstract string[] LinkedStyleSheets { get; }
			*/

			/* ControlSkins */
			fld = new CodeMemberField (typeof (HybridDictionary), "__controlSkins");
			fld.Attributes = MemberAttributes.Private;
			fld.InitExpression = new CodeObjectCreateExpression (typeof (HybridDictionary));
			mainClass.Members.Add (fld);

			prop = new CodeMemberProperty ();
			prop.Name = "ControlSkins";
			prop.Attributes = MemberAttributes.Family | MemberAttributes.Override;
			prop.Type = new CodeTypeReference (typeof (IDictionary));
			prop.GetStatements.Add (new CodeMethodReturnStatement (new CodeVariableReferenceExpression ("__controlSkins")));
			mainClass.Members.Add (prop);

			/* LinkedStyleSheets */
			fld = new CodeMemberField (typeof (string[]), "__linkedStyleSheets");
			fld.Attributes = MemberAttributes.Private;
			fld.InitExpression = CreateLinkedStyleSheets ();
			mainClass.Members.Add (fld);

			prop = new CodeMemberProperty ();
			prop.Name = "LinkedStyleSheets";
			prop.Attributes = MemberAttributes.Family | MemberAttributes.Override;
			prop.Type = new CodeTypeReference (typeof (string[]));
			prop.GetStatements.Add (new CodeMethodReturnStatement (new CodeVariableReferenceExpression ("__linkedStyleSheets")));
			mainClass.Members.Add (prop);

			/* AppRelativeTemplateSourceDirectory */
			prop = new CodeMemberProperty ();
			prop.Name = "AppRelativeTemplateSourceDirectory";
			prop.Attributes = MemberAttributes.Family | MemberAttributes.Override;
			prop.Type = new CodeTypeReference (typeof (string));
			prop.GetStatements.Add (new CodeMethodReturnStatement (
							new CodePrimitiveExpression (
								VirtualPathUtility.ToAbsolute (parser.BaseVirtualDir))));
			mainClass.Members.Add (prop);

			ControlBuilder builder = parser.RootBuilder;
			if (builder.Children != null) {
				foreach (object o in builder.Children) {
					if (! (o is ControlBuilder))
						continue;
					if (o is CodeRenderBuilder)
						continue;
					
					ControlBuilder b = (ControlBuilder) o;
					CreateControlSkinMethod (b);
				}
			}
		}
开发者ID:calumjiao,项目名称:Mono-Class-Libraries,代码行数:60,代码来源:PageThemeCompiler.cs


注:本文中的System.CodeDom.CodeMemberField类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。