• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C# TypeReference类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: CreateDefaultValueForType

		public static Expression CreateDefaultValueForType(TypeReference type)
		{
			if (type != null && !type.IsArrayType) {
				switch (type.Type) {
					case "System.SByte":
					case "System.Byte":
					case "System.Int16":
					case "System.UInt16":
					case "System.Int32":
					case "System.UInt32":
					case "System.Int64":
					case "System.UInt64":
					case "System.Single":
					case "System.Double":
						return new PrimitiveExpression(0, "0");
					case "System.Char":
						return new PrimitiveExpression('\0', "'\\0'");
					case "System.Object":
					case "System.String":
						return new PrimitiveExpression(null, "null");
					case "System.Boolean":
						return new PrimitiveExpression(false, "false");
					default:
						return new DefaultValueExpression(type);
				}
			} else {
				return new PrimitiveExpression(null, "null");
			}
		}
开发者ID:mgagne-atman,项目名称:Projects,代码行数:29,代码来源:ExpressionBuilder.cs


示例2: CloneMethodWithDeclaringType

    private static MethodReference CloneMethodWithDeclaringType(MethodDefinition methodDef, TypeReference declaringTypeRef)
    {
        if (!declaringTypeRef.IsGenericInstance || methodDef == null)
        {
            return methodDef;
        }

        var methodRef = new MethodReference(methodDef.Name, methodDef.ReturnType, declaringTypeRef)
        {
            CallingConvention = methodDef.CallingConvention,
            HasThis = methodDef.HasThis,
            ExplicitThis = methodDef.ExplicitThis
        };

        foreach (var paramDef in methodDef.Parameters)
        {
            methodRef.Parameters.Add(new ParameterDefinition(paramDef.Name, paramDef.Attributes, paramDef.ParameterType));
        }

        foreach (var genParamDef in methodDef.GenericParameters)
        {
            methodRef.GenericParameters.Add(new GenericParameter(genParamDef.Name, methodRef));
        }

        return methodRef;
    }
开发者ID:mdabbagh88,项目名称:Ionad,代码行数:26,代码来源:CecilExtensions.cs


示例3: FieldDefinition

 public FieldDefinition(ClassDefinition owner, string name, TypeReference fieldType)
     : this()
 {
     Owner = owner;
     Name = name;
     Type = fieldType;
 }
开发者ID:Xtremrules,项目名称:dot42,代码行数:7,代码来源:FieldDefinition.cs


示例4: FindCoreReferences

    public void FindCoreReferences()
    {
        var coreTypes = new List<TypeDefinition>();
        AppendTypes("mscorlib", coreTypes);
        AppendTypes("System.IO", coreTypes);
        AppendTypes("System.Runtime", coreTypes);
        AppendTypes("System.Reflection", coreTypes);

        var textReaderTypeDefinition = coreTypes.First(x => x.Name == "TextReader");
        ReadToEndMethod = ModuleDefinition.ImportReference(textReaderTypeDefinition.Find("ReadToEnd"));

        var exceptionTypeDefinition = coreTypes.First(x => x.Name == "Exception");
        ExceptionConstructorReference = ModuleDefinition.ImportReference(exceptionTypeDefinition.Find(".ctor", "String"));

        var stringTypeDefinition = coreTypes.First(x => x.Name == "String");
        ConcatReference = ModuleDefinition.ImportReference(stringTypeDefinition.Find("Concat", "String", "String", "String"));

        DisposeTextReaderMethod = ModuleDefinition.ImportReference(textReaderTypeDefinition.Find("Dispose"));
        var streamTypeDefinition = coreTypes.First(x => x.Name == "Stream");
        DisposeStreamMethod = ModuleDefinition.ImportReference(streamTypeDefinition.Find("Dispose"));
        StreamTypeReference = ModuleDefinition.ImportReference(streamTypeDefinition);
        var streamReaderTypeDefinition = coreTypes.First(x => x.Name == "StreamReader");
        StreamReaderTypeReference = ModuleDefinition.ImportReference(streamReaderTypeDefinition);
        StreamReaderConstructorReference = ModuleDefinition.ImportReference(streamReaderTypeDefinition.Find(".ctor", "Stream"));
        var assemblyTypeDefinition = coreTypes.First(x => x.Name == "Assembly");
        AssemblyTypeReference = ModuleDefinition.ImportReference(assemblyTypeDefinition);
        GetExecutingAssemblyMethod = ModuleDefinition.ImportReference(assemblyTypeDefinition.Find("GetExecutingAssembly"));
        GetManifestResourceStreamMethod = ModuleDefinition.ImportReference(assemblyTypeDefinition.Find("GetManifestResourceStream", "String"));
    }
开发者ID:Misiu,项目名称:Resourcer,代码行数:29,代码来源:ReferenceFinder.cs


示例5: FindWinRTMsCoreReferences

 public void FindWinRTMsCoreReferences()
 {
     var systemRuntime = assemblyResolver.Resolve("System.Runtime");
     var systemRuntimeTypes = systemRuntime.MainModule.Types;
     var voidDefinition = systemRuntimeTypes.First(x => x.Name == "Void");
     VoidTypeReference = Module.Import(voidDefinition);
 }
开发者ID:MartinDemberger,项目名称:Costura,代码行数:7,代码来源:MsCoreReferenceFinder.cs


示例6: FindMsCoreReferences

    void FindMsCoreReferences()
    {
        var msCoreLibDefinition = AssemblyResolver.Resolve("mscorlib");

        msCoreTypes = msCoreLibDefinition.MainModule.Types.ToList();

        var objectDefinition = msCoreTypes.FirstOrDefault(x => x.Name == "Object");
        if (objectDefinition == null)
        {
            throw new WeavingException("Only compat with desktop .net");
        }

        var voidDefinition = msCoreTypes.First(x => x.Name == "Void");
        voidTypeReference = ModuleDefinition.ImportReference(voidDefinition);

        var dictionary = msCoreTypes.First(x => x.Name == "Dictionary`2");
        var dictionaryOfStringOfString = ModuleDefinition.ImportReference(dictionary);
        dictionaryOfStringOfStringAdd = ModuleDefinition.ImportReference(dictionaryOfStringOfString.Resolve().Methods.First(m => m.Name == "Add"))
            .MakeHostInstanceGeneric(ModuleDefinition.TypeSystem.String, ModuleDefinition.TypeSystem.String);

        var list = msCoreTypes.First(x => x.Name == "List`1");
        var listOfString = ModuleDefinition.ImportReference(list);
        listOfStringAdd = ModuleDefinition.ImportReference(listOfString.Resolve().Methods.First(m => m.Name == "Add"))
            .MakeHostInstanceGeneric(ModuleDefinition.TypeSystem.String);

        var compilerGeneratedAttribute = msCoreTypes.First(x => x.Name == "CompilerGeneratedAttribute");
        compilerGeneratedAttributeCtor = ModuleDefinition.ImportReference(compilerGeneratedAttribute.Methods.First(x => x.IsConstructor));
    }
开发者ID:rodrigoferrobrti,项目名称:Costura,代码行数:28,代码来源:MsCoreReferenceFinder.cs


示例7: AddAppliesToType

        internal void AddAppliesToType(string typeName)
        {
            TypeReference tr = new TypeReference();

            tr.name = typeName;
            this.referenceList.Add(tr);
        }
开发者ID:40a,项目名称:PowerShell,代码行数:7,代码来源:displayDescriptionDataMethods.cs


示例8: IsType

		/// <summary>
		/// Determines whether a type given by its full name corresponds to a type reference.
		/// </summary>
		public static bool IsType(TypeReference type, string typeName)
		{
			if (type.SystemType == typeName) return true;

			int index = typeName.LastIndexOf('.');
			return (index > 0 && type.SystemType == typeName.Substring(index + 1));
		}
开发者ID:dw4dev,项目名称:Phalanger,代码行数:10,代码来源:Utility.cs


示例9: Fill

        internal static void Fill(string tdString, TypeReference item)
        {
            if (!string.IsNullOrEmpty(tdString))
            {
                char prefix = tdString[0];
                var td = (TypeDescriptors) prefix;
                switch (td)
                {
                    case TypeDescriptors.Array:
                        var atype = (ArrayType) item;

                        TypeReference elementType = Allocate(tdString.Substring(1));
                        Fill(tdString.Substring(1), elementType);

                        /* All types are already allocated
                         * We want to reuse object reference if already in type repository
                         * BUT if not, we don't want to add a new reference to this type:
                         * it's a 'transient' type only used in the Dexer object model but
                         * not persisted in dex file.
                         */
                        atype.ElementType = elementType; //context.Import(elementType, false);

                        break;
                    case TypeDescriptors.FullyQualifiedName:
                        var cref = (ClassReference) item;
                        cref.Fullname = tdString.Substring(1, tdString.Length - 2);
                        break;
                }
            }
        }
开发者ID:rfcclub,项目名称:dot42,代码行数:30,代码来源:TypeDescriptor.cs


示例10: GetName

    public static string GetName(TypeReference type)
    {
        if (type.IsNested)
            return GetName (type.DeclaringType) + "+" + type.Name;

        return type.Name;
    }
开发者ID:mono,项目名称:TreemapViewer,代码行数:7,代码来源:Main.cs


示例11: CheckTypeReferenceForProperWinRTHome

 public void CheckTypeReferenceForProperWinRTHome(TypeReference typeReference, string module)
 {
     ScopeReference scope = GetScopeReferenceOfType(typeReference);
     Assert.Equal(module, scope.Name.Value);
     int windowsRuntimeFlag = ((int)System.Reflection.AssemblyContentType.WindowsRuntime << 9);
     Assert.True((((int)scope.Flags) & windowsRuntimeFlag) == windowsRuntimeFlag);
 }
开发者ID:tijoytom,项目名称:corert,代码行数:7,代码来源:ExplicitScopeTests.cs


示例12: Execute

    public void Execute()
    {
        var msCoreLibDefinition = assemblyResolver.Resolve("mscorlib");
        var msCoreTypes = msCoreLibDefinition.MainModule.Types;

        var objectDefinition = msCoreTypes.FirstOrDefault(x => x.Name == "Object");
        if (objectDefinition == null)
        {
            ExecuteWinRT();
            return;
        }
        var module = moduleWeaver.ModuleDefinition;

        var methodBaseDefinition = msCoreTypes.First(x => x.Name == "MethodBase");
        GetMethodFromHandle = module.ImportReference(methodBaseDefinition.Methods.First(x => x.Name == "GetMethodFromHandle"));

        var methodInfo = msCoreTypes.FirstOrDefault(x => x.Name == "MethodInfo");
        MethodInfoTypeReference = module.ImportReference(methodInfo);

        var compilerGeneratedDefinition = msCoreTypes.First(x => x.Name == "CompilerGeneratedAttribute");
        CompilerGeneratedReference = module.ImportReference(compilerGeneratedDefinition.Methods.First(x => x.IsConstructor));

        var systemCoreDefinition = GetSystemCoreDefinition();

        var expressionTypeDefinition = systemCoreDefinition.MainModule.Types.First(x => x.Name == "Expression");
        var propertyMethodDefinition =
            expressionTypeDefinition.Methods.First(
                x => x.Name == "Property" && x.Parameters.Last().ParameterType.Name == "MethodInfo");
        PropertyReference = module.ImportReference(propertyMethodDefinition);
    }
开发者ID:qkub,项目名称:ExpandoIntelligizer,代码行数:30,代码来源:MsCoreReferenceFinder.cs


示例13: VariableStartEntry

 /// <summary>
 /// Default ctor
 /// </summary>
 public VariableStartEntry(int offset, Register register, IVariable variable, TypeReference type) : base(offset)
 {
     this.register = register;
     Variable = variable;
     name = variable.OriginalName;
     this.type = type;
 }
开发者ID:Xtremrules,项目名称:dot42,代码行数:10,代码来源:DebugInfoBuilder.VariableStartEntry.cs


示例14: PointerTypeReference

        //=====================================================================

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="pointedToType">The pointed to type</param>
        public PointerTypeReference(TypeReference pointedToType)
        {
            if(pointedToType == null)
                throw new ArgumentNullException("pointedToType");

            this.PointedToType = pointedToType;
        }
开发者ID:modulexcite,项目名称:SHFB-1,代码行数:13,代码来源:PointerTypeReference.cs


示例15: ReadObject

        private TypeReference ReadObject(JsonReader reader)
        {
            reader.Read();
            if (reader.TokenType != JsonToken.PropertyName || ((string)reader.Value != "__ref__" && (string)reader.Value != "type"))
            {
                throw new ArgumentException("Unexpected token type " + reader.TokenType);
            }

            var isRef = (string) reader.Value == "__ref__";

            reader.Read();
            if (reader.TokenType != JsonToken.String)
            {
                throw new ArgumentException("Unexpected token type " + reader.TokenType);
            }

            var retval = new TypeReference
            {
                IsReference = isRef,
                Name = (string)reader.Value
            };
            reader.Read();

            return retval;
        }
开发者ID:lokeuei,项目名称:glTF,代码行数:25,代码来源:ArrayOfTypeReferencesConverter.cs


示例16: ExecuteWinRT

 public void ExecuteWinRT()
 {
     var systemRuntime = assemblyResolver.Resolve("System.Runtime");
     var systemRuntimeTypes = systemRuntime.MainModule.Types;
     var voidDefinition = systemRuntimeTypes.First(x => x.Name == "Void");
     VoidTypeReference = moduleReader.Module.Import(voidDefinition);
 }
开发者ID:sachhi,项目名称:costura,代码行数:7,代码来源:MsCoreReferenceFinder.cs


示例17: Encode

        public static string Encode(TypeReference tref, bool shorty)
        {
            var result = new StringBuilder();

            var td = (char)tref.TypeDescriptor;

            if (!shorty)
            {
                result.Append(td);

                if (tref is ArrayType)
                    result.Append(Encode((tref as ArrayType).ElementType, false));

                if (tref is ClassReference)
                    result.Append(string.Concat((tref as ClassReference).Fullname.Replace(ClassReference.NamespaceSeparator, ClassReference.InternalNamespaceSeparator), ";"));
            }
            else
            {
                /* A ShortyDescriptor is the short form representation of a method prototype,
                 * including return and parameter types, except that there is no distinction
                 * between various reference (class or array) types. Instead, all reference
                 * types are represented by a single 'L' character. */
                if (td == (char)TypeDescriptors.Array)
                    td = (char)TypeDescriptors.FullyQualifiedName;

                result.Append(td);
            }

            return result.ToString();
        }
开发者ID:shuixi2013,项目名称:Dexer,代码行数:30,代码来源:TypeDescriptor.cs


示例18: ReferenceTypeReference

        //=====================================================================

        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="referredToType">The referred to type</param>
        public ReferenceTypeReference(TypeReference referredToType)
        {
            if(referredToType == null)
                throw new ArgumentNullException("referredToType");

            this.ReferredToType = referredToType;
        }
开发者ID:modulexcite,项目名称:SHFB-1,代码行数:13,代码来源:ReferenceTypeReference.cs


示例19: Execute

    public void Execute()
    {
        var validationTemplateAttribute = ModuleDefinition
            .Assembly
            .CustomAttributes
            .FirstOrDefault(x=>x.AttributeType.Name == "ValidationTemplateAttribute");

        if (validationTemplateAttribute == null)
        {
            LogInfo("Could not find a 'ValidationTemplateAttribute' on the current assembly. Going to search current assembly for 'ValidationTemplate'.");

            TypeDefinition = ModuleDefinition
                .GetTypes()
                .FirstOrDefault(x =>
                    x.Name == "ValidationTemplate" ||
                    x.Name == "ValidationTemplate`1");
            if (TypeDefinition == null)
            {
                throw new WeavingException("Could not find a type named 'ValidationTemplate'");
            }
            TypeReference = TypeDefinition;

            FindConstructor();
        }
        else
        {
            var typeReference = (TypeReference) validationTemplateAttribute.ConstructorArguments.First().Value;

            TypeReference = typeReference;
            TypeDefinition = typeReference.Resolve();

            FindConstructor();
            TemplateConstructor = ModuleDefinition.Import(TemplateConstructor);
        }
    }
开发者ID:kedarvaidya,项目名称:Validar,代码行数:35,代码来源:ValidationTemplateFinder.cs


示例20: CheckType

	// note: pointers don't *need* to be SecurityCritical because they can't be
	// used without a "unsafe" or "fixed" context that transparent code won't support
	static bool CheckType (TypeReference type)
	{
		string fullname = type.FullName;

		// pointers can only be used by fixed/unsafe code
		return !fullname.EndsWith ("*");
	}
开发者ID:snorp,项目名称:moon,代码行数:9,代码来源:detect-sc.cs



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# TypeReferenceExpression类代码示例发布时间:2022-05-24
下一篇:
C# TypeRef类代码示例发布时间:2022-05-24
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap