private DecompiledType GetDecompiledType(IMemberDefinition member, ILanguage language) { V_0 = Utilities.GetDeclaringTypeOrSelf(member); V_1 = new DecompiledType(V_0); V_2 = new Queue <IMemberDefinition>(); V_2.Enqueue(member); Label0: while (V_2.get_Count() > 0) { V_3 = V_2.Dequeue(); if (V_3 as TypeDefinition != null && (object)V_3 == (object)member) { V_4 = Utilities.GetTypeMembers(V_3 as TypeDefinition, language, true, null, null, null, V_1.get_TypeContext().GetFieldToPropertyMap(language).get_Keys()).GetEnumerator(); try { while (V_4.MoveNext()) { V_5 = V_4.get_Current(); V_2.Enqueue(V_5); } } finally { ((IDisposable)V_4).Dispose(); } } if (V_3 as MethodDefinition != null) { this.DecompileMember(V_3 as MethodDefinition, language, V_1); } if (V_3 as EventDefinition != null) { V_6 = V_3 as EventDefinition; if ((new AutoImplementedEventMatcher(V_6, language)).IsAutoImplemented()) { dummyVar0 = V_1.get_TypeContext().get_AutoImplementedEvents().Add(V_6); } if (V_6.get_AddMethod() != null) { this.DecompileMember(V_6.get_AddMethod(), language, V_1); } if (V_6.get_RemoveMethod() != null) { this.DecompileMember(V_6.get_RemoveMethod(), language, V_1); } if (V_6.get_InvokeMethod() != null) { this.DecompileMember(V_6.get_InvokeMethod(), language, V_1); } } if (V_3 as PropertyDefinition != null) { V_7 = V_3 as PropertyDefinition; stackVariable52 = new PropertyDecompiler(V_7, language, this.renameInvalidMembers, this.cacheService, V_1.get_TypeContext()); stackVariable52.add_ExceptionThrown(new EventHandler <Exception>(this.OnExceptionThrown)); stackVariable52.Decompile(out V_8, out V_9, out V_10); stackVariable52.remove_ExceptionThrown(new EventHandler <Exception>(this.OnExceptionThrown)); if (V_10) { dummyVar1 = V_1.get_TypeContext().get_AutoImplementedProperties().Add(V_7); } if (V_8 != null) { this.AddDecompiledMemberToDecompiledType(V_8, V_1); } if (V_9 != null) { this.AddDecompiledMemberToDecompiledType(V_9, V_1); } V_11 = stackVariable52.get_ExceptionsWhileDecompiling().GetEnumerator(); try { while (V_11.MoveNext()) { V_12 = V_11.get_Current(); this.get_ExceptionsWhileDecompiling().Add(V_12); } } finally { if (V_11 != null) { V_11.Dispose(); } } } if (V_3 as FieldDefinition == null) { continue; } V_13 = V_3 as FieldDefinition; V_14 = V_3.get_DeclaringType().get_Methods().GetEnumerator(); try { while (V_14.MoveNext()) { V_15 = V_14.get_Current(); if (!V_15.get_IsConstructor() || V_13.get_IsStatic() != V_15.get_IsStatic()) { continue; } this.DecompileConstructorChain(V_15, language, V_1); goto Label0; } } finally { V_14.Dispose(); } } V_1.get_TypeContext().set_ExplicitlyImplementedMembers(this.GetExplicitlyImplementedInterfaceMethods(V_0, language)); this.AddGeneratedFilterMethodsToDecompiledType(V_1, V_1.get_TypeContext(), language); return(V_1); }
public IEnumerable <IFeatureInfo> GetFeatures(IExtensionInfo extensionInfo, IManifestInfo manifestInfo) { V_0 = new List <IFeatureInfo>(); V_1 = manifestInfo.get_ModuleInfo().get_Features().ToList <FeatureAttribute>(); if (V_1.get_Count() <= 0) { V_15 = extensionInfo.get_Id(); V_16 = manifestInfo.get_Name(); stackVariable14 = manifestInfo.get_ModuleInfo().get_Dependencies(); stackVariable15 = FeaturesProvider.u003cu003ec.u003cu003e9__3_1; if (stackVariable15 == null) { dummyVar5 = stackVariable15; stackVariable15 = new Func <string, string>(FeaturesProvider.u003cu003ec.u003cu003e9.u003cGetFeaturesu003eb__3_1); FeaturesProvider.u003cu003ec.u003cu003e9__3_1 = stackVariable15; } V_17 = stackVariable14.Select <string, string>(stackVariable15).ToArray <string>(); if (!int.TryParse(manifestInfo.get_ModuleInfo().get_Priority(), out V_18)) { V_18 = 0; } V_19 = manifestInfo.get_ModuleInfo().get_Category(); V_20 = manifestInfo.get_ModuleInfo().get_Description(); V_21 = manifestInfo.get_ModuleInfo().get_DefaultTenantOnly(); V_22 = manifestInfo.get_ModuleInfo().get_IsAlwaysEnabled(); stackVariable35 = new FeatureBuildingContext(); stackVariable35.set_FeatureId(V_15); stackVariable35.set_FeatureName(V_16); stackVariable35.set_Category(V_19); stackVariable35.set_Description(V_20); stackVariable35.set_ExtensionInfo(extensionInfo); stackVariable35.set_ManifestInfo(manifestInfo); stackVariable35.set_Priority(V_18); stackVariable35.set_FeatureDependencyIds(V_17); stackVariable35.set_DefaultTenantOnly(V_21); stackVariable35.set_IsAlwaysEnabled(V_22); V_23 = stackVariable35; V_14 = this._featureBuilderEvents.GetEnumerator(); try { while (V_14.MoveNext()) { V_14.get_Current().Building(V_23); } } finally { if (V_14 != null) { V_14.Dispose(); } } V_24 = new FeatureInfo(V_23.get_FeatureId(), V_23.get_FeatureName(), V_23.get_Priority(), V_23.get_Category(), V_23.get_Description(), V_23.get_ExtensionInfo(), V_23.get_FeatureDependencyIds(), V_23.get_DefaultTenantOnly(), V_23.get_IsAlwaysEnabled()); V_14 = this._featureBuilderEvents.GetEnumerator(); try { while (V_14.MoveNext()) { V_14.get_Current().Built(V_24); } } finally { if (V_14 != null) { V_14.Dispose(); } } V_0.Add(V_24); } else { V_2 = V_1.GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); if (string.IsNullOrWhiteSpace(V_3.get_Id())) { throw new ArgumentException(string.Concat("A feature is missing a mandatory 'Id' property in the Module '", extensionInfo.get_Id(), "'")); } V_4 = V_3.get_Id(); stackVariable99 = V_3.get_Name(); if (stackVariable99 == null) { dummyVar0 = stackVariable99; stackVariable99 = V_3.get_Id(); } V_5 = stackVariable99; stackVariable101 = V_3.get_Dependencies(); stackVariable102 = FeaturesProvider.u003cu003ec.u003cu003e9__3_0; if (stackVariable102 == null) { dummyVar1 = stackVariable102; stackVariable102 = new Func <string, string>(FeaturesProvider.u003cu003ec.u003cu003e9.u003cGetFeaturesu003eb__3_0); FeaturesProvider.u003cu003ec.u003cu003e9__3_0 = stackVariable102; } V_6 = stackVariable101.Select <string, string>(stackVariable102).ToArray <string>(); stackVariable106 = V_3.get_Priority(); if (stackVariable106 == null) { dummyVar2 = stackVariable106; stackVariable106 = manifestInfo.get_ModuleInfo().get_Priority(); } if (!int.TryParse(stackVariable106, out V_7)) { V_7 = 0; } stackVariable110 = V_3.get_Category(); if (stackVariable110 == null) { dummyVar3 = stackVariable110; stackVariable110 = manifestInfo.get_ModuleInfo().get_Category(); } V_8 = stackVariable110; stackVariable112 = V_3.get_Description(); if (stackVariable112 == null) { dummyVar4 = stackVariable112; stackVariable112 = manifestInfo.get_ModuleInfo().get_Description(); } V_9 = stackVariable112; V_10 = V_3.get_DefaultTenantOnly(); V_11 = V_3.get_IsAlwaysEnabled(); stackVariable117 = new FeatureBuildingContext(); stackVariable117.set_FeatureId(V_4); stackVariable117.set_FeatureName(V_5); stackVariable117.set_Category(V_8); stackVariable117.set_Description(V_9); stackVariable117.set_ExtensionInfo(extensionInfo); stackVariable117.set_ManifestInfo(manifestInfo); stackVariable117.set_Priority(V_7); stackVariable117.set_FeatureDependencyIds(V_6); stackVariable117.set_DefaultTenantOnly(V_10); stackVariable117.set_IsAlwaysEnabled(V_11); V_12 = stackVariable117; V_14 = this._featureBuilderEvents.GetEnumerator(); try { while (V_14.MoveNext()) { V_14.get_Current().Building(V_12); } } finally { if (V_14 != null) { V_14.Dispose(); } } V_13 = new FeatureInfo(V_4, V_5, V_7, V_8, V_9, extensionInfo, V_6, V_10, V_11); V_14 = this._featureBuilderEvents.GetEnumerator(); try { while (V_14.MoveNext()) { V_14.get_Current().Built(V_13); } } finally { if (V_14 != null) { V_14.Dispose(); } } V_0.Add(V_13); } } finally { ((IDisposable)V_2).Dispose(); } } return(V_0); }
private void Preprocess() { V_0 = 0; V_1 = new Dictionary <ParameterDefinition, string>(); V_2 = this.methodContext.get_ParameterDefinitionToNameMap().GetEnumerator(); try { while (V_2.MoveNext()) { V_3 = V_2.get_Current(); V_4 = V_3.get_Key(); V_5 = V_3.get_Value(); V_6 = V_5; V_7 = !V_6.IsValidIdentifier(); while (V_7 || this.HasMethodParameterWithSameName(V_6)) { V_7 = false; stackVariable22 = V_0; V_0 = stackVariable22 + 1; V_8 = stackVariable22; V_6 = String.Concat("argument", V_8.ToString()); } if (!String.op_Inequality(V_6, V_5)) { continue; } V_1.Add(V_4, V_6); } } finally { ((IDisposable)V_2).Dispose(); } V_2 = V_1.GetEnumerator(); try { while (V_2.MoveNext()) { V_9 = V_2.get_Current(); this.methodContext.get_ParameterDefinitionToNameMap().set_Item(V_9.get_Key(), V_9.get_Value()); } } finally { ((IDisposable)V_2).Dispose(); } V_10 = this.methodContext.get_Body().get_Method().get_Parameters().GetEnumerator(); try { while (V_10.MoveNext()) { V_11 = V_10.get_Current(); V_12 = V_11.get_Name(); if (String.IsNullOrEmpty(V_12)) { V_12 = this.GetNameByType(V_11.get_ParameterType()); } this.methodContext.get_ParameterDefinitionToNameMap().Add(V_11, V_12); } } finally { V_10.Dispose(); } if (this.methodContext.get_Method().get_IsSetter() && this.methodContext.get_Method().get_Parameters().get_Count() == 1) { V_13 = this.methodContext.get_Method().get_Parameters().get_Item(0); this.methodContext.get_ParameterDefinitionToNameMap().set_Item(V_13, "value"); } V_14 = this.methodContext.get_Body().get_Variables().GetEnumerator(); try { while (V_14.MoveNext()) { V_15 = V_14.get_Current(); if (!this.methodContext.get_ParameterDefinitionToNameMap().ContainsValue(V_15.get_Name())) { continue; } dummyVar0 = this.methodContext.get_VariablesToRename().Add(V_15); } } finally { V_14.Dispose(); } V_16 = this.methodContext.get_VariableDefinitionToNameMap().GetEnumerator(); try { while (V_16.MoveNext()) { V_17 = V_16.get_Current(); if (!this.methodContext.get_ParameterDefinitionToNameMap().ContainsValue(V_17.get_Value())) { continue; } dummyVar1 = this.methodContext.get_VariablesToRename().Add(V_17.get_Key()); } } finally { ((IDisposable)V_16).Dispose(); } return; }