Example #1
0
		public static BamlContext ConstructContext(ModuleDef module, BamlDocument document, CancellationToken token) {
			var ctx = new BamlContext(module);

			foreach (var record in document) {
				token.ThrowIfCancellationRequested();

				if (record is AssemblyInfoRecord) {
					var assemblyInfo = (AssemblyInfoRecord)record;
					if (assemblyInfo.AssemblyId == ctx.AssemblyIdMap.Count)
						ctx.AssemblyIdMap.Add(assemblyInfo.AssemblyId, assemblyInfo);
				}
				else if (record is AttributeInfoRecord) {
					var attrInfo = (AttributeInfoRecord)record;
					if (attrInfo.AttributeId == ctx.AttributeIdMap.Count)
						ctx.AttributeIdMap.Add(attrInfo.AttributeId, attrInfo);
				}
				else if (record is StringInfoRecord) {
					var strInfo = (StringInfoRecord)record;
					if (strInfo.StringId == ctx.StringIdMap.Count)
						ctx.StringIdMap.Add(strInfo.StringId, strInfo);
				}
				else if (record is TypeInfoRecord) {
					var typeInfo = (TypeInfoRecord)record;
					if (typeInfo.TypeId == ctx.TypeIdMap.Count)
						ctx.TypeIdMap.Add(typeInfo.TypeId, typeInfo);
				}
			}

			return ctx;
		}
Example #2
0
        public static BamlContext ConstructContext(ModuleDef module, BamlDocument document, CancellationToken token)
        {
            var ctx = new BamlContext(module);

            foreach (var record in document)
            {
                token.ThrowIfCancellationRequested();

                if (record is AssemblyInfoRecord)
                {
                    var assemblyInfo = (AssemblyInfoRecord)record;
                    if (assemblyInfo.AssemblyId == ctx.AssemblyIdMap.Count)
                    {
                        ctx.AssemblyIdMap.Add(assemblyInfo.AssemblyId, assemblyInfo);
                    }
                }
                else if (record is AttributeInfoRecord)
                {
                    var attrInfo = (AttributeInfoRecord)record;
                    if (attrInfo.AttributeId == ctx.AttributeIdMap.Count)
                    {
                        ctx.AttributeIdMap.Add(attrInfo.AttributeId, attrInfo);
                    }
                }
                else if (record is StringInfoRecord)
                {
                    var strInfo = (StringInfoRecord)record;
                    if (strInfo.StringId == ctx.StringIdMap.Count)
                    {
                        ctx.StringIdMap.Add(strInfo.StringId, strInfo);
                    }
                }
                else if (record is TypeInfoRecord)
                {
                    var typeInfo = (TypeInfoRecord)record;
                    if (typeInfo.TypeId == ctx.TypeIdMap.Count)
                    {
                        ctx.TypeIdMap.Add(typeInfo.TypeId, typeInfo);
                    }
                }
            }

            return(ctx);
        }