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; }
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); }