private MemberViewModel GetViewModelForMethod(MethodInfo methodInfo) { MemberViewModel vm; if (_viewModelsDictionary.ContainsKey(methodInfo)) { var typeViewModel = GetViewModelForType(methodInfo.DeclaringType); vm = _viewModelsDictionary[methodInfo]; vm.Background = typeViewModel.Background; vm.Foreground = typeViewModel.Foreground; return vm; } if (IsPropertyAccessor(methodInfo)) { var propertyInfo = Helper.GetAccessorProperty(methodInfo.MemberReference); var typeViewModel = GetViewModelForType(propertyInfo.DeclaringType); if (_viewModelsDictionary.ContainsKey(propertyInfo)) { vm = _viewModelsDictionary[propertyInfo]; vm.Background = typeViewModel.Background; vm.Foreground = typeViewModel.Foreground; return vm; } var pvm = new PropertyViewModel(propertyInfo) { Background = typeViewModel.Background, Foreground = typeViewModel.Foreground, ToolTip = typeViewModel.Name }; _viewModelsDictionary.Add(propertyInfo, pvm); return pvm; } if (IsEventAccessor(methodInfo)) { var eventInfo = Helper.GetAccessorEvent(methodInfo.MemberReference); var typeViewModel = GetViewModelForType(eventInfo.DeclaringType); if (_viewModelsDictionary.ContainsKey(eventInfo)) { vm = _viewModelsDictionary[eventInfo]; vm.Background = typeViewModel.Background; vm.Foreground = typeViewModel.Foreground; return vm; } var evm = new EventViewModel(eventInfo) { Background = typeViewModel.Background, Foreground = typeViewModel.Foreground, ToolTip = typeViewModel.Name }; _viewModelsDictionary.Add(eventInfo, evm); return evm; } var tvm = GetViewModelForType(methodInfo.DeclaringType); var mvm = new MethodViewModel(methodInfo) { Background = tvm.Background, Foreground = tvm.Foreground, ToolTip = tvm.Name }; _viewModelsDictionary.Add(methodInfo, mvm); return mvm; }
private MemberViewModel GetViewModelForField(FieldInfo fieldInfo) { MemberViewModel vm; if (_viewModelsDictionary.ContainsKey(fieldInfo)) { var typeViewModel = GetViewModelForType(fieldInfo.DeclaringType); vm = _viewModelsDictionary[fieldInfo]; vm.Background = typeViewModel.Background; vm.Foreground = typeViewModel.Foreground; return vm; } var eventInfo = Helper.GetEventForBackingField(fieldInfo.MemberReference); if (eventInfo != null) { var typeViewModel = GetViewModelForType(eventInfo.DeclaringType); if (_viewModelsDictionary.ContainsKey(eventInfo)) { vm = _viewModelsDictionary[eventInfo]; vm.Background = typeViewModel.Background; vm.Foreground = typeViewModel.Foreground; return vm; } var evm = new EventViewModel(eventInfo) { Background = typeViewModel.Background, Foreground = typeViewModel.Foreground, ToolTip = typeViewModel.Name }; _viewModelsDictionary.Add(eventInfo, evm); return evm; } var tvm = GetViewModelForType(fieldInfo.DeclaringType); var fvm = new FieldViewModel(fieldInfo) { Background = tvm.Background, Foreground = tvm.Foreground, ToolTip = tvm.Name }; _viewModelsDictionary.Add(fieldInfo, fvm); return fvm; }