247 changed files with 3944 additions and 2001 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?> |
||||
<configuration> |
||||
<!-- Enable mixed-mode CLRv2 assemblies. --> |
||||
<startup useLegacyV2RuntimeActivationPolicy="true"> |
||||
<supportedRuntime version="v4.0" /> |
||||
</startup> |
||||
|
||||
<runtime> |
||||
<!-- Enable loading assemblies from network shares or downloaded from the internet. --> |
||||
<loadFromRemoteSources enabled="true"/> |
||||
</runtime> |
||||
</configuration> |
Binary file not shown.
@ -0,0 +1,12 @@
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8" ?> |
||||
<configuration> |
||||
<!-- Enable mixed-mode CLRv2 assemblies. --> |
||||
<startup useLegacyV2RuntimeActivationPolicy="true"> |
||||
<supportedRuntime version="v4.0" /> |
||||
</startup> |
||||
|
||||
<runtime> |
||||
<!-- Enable loading assemblies from network shares or downloaded from the internet. --> |
||||
<loadFromRemoteSources enabled="true"/> |
||||
</runtime> |
||||
</configuration> |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,42 +1,37 @@
@@ -1,42 +1,37 @@
|
||||
<gui:OptionPanel x:Class="Debugger.AddIn.Options.DebuggingOptionsPanel" |
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
||||
xmlns:sd="http://icsharpcode.net/sharpdevelop/core" |
||||
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop" |
||||
xmlns:debugger="clr-namespace:ICSharpCode.SharpDevelop.Services;assembly=Debugger.AddIn" |
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets"> |
||||
<StackPanel> |
||||
<GroupBox Margin="5" Header="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping}"> |
||||
<widgets:StackPanelWithSpacing SpaceBetweenItems="5"> |
||||
<CheckBox x:Name="chbEnableJustMyCode" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.EnableJustMyCode}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.EnableJustMyCode}" /> |
||||
<CheckBox x:Name="chbStepOverNoSymbols" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverNoSymbols}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverNoSymbols}" /> |
||||
<CheckBox x:Name="chbStepOverDebuggerAttributes" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverDebuggerAttributes}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverDebuggerAttributes}" /> |
||||
|
||||
<CheckBox x:Name="chbStepOverAllProperties" |
||||
Checked="ChbStepOverAllProperties_CheckedChanged" |
||||
Unchecked="ChbStepOverAllProperties_CheckedChanged" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverAllProperties}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverAllProperties}" /> |
||||
<CheckBox x:Name="chbStepOverSingleLineProperties" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverSingleLineProperties}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverSingleLineProperties}" /> |
||||
<CheckBox x:Name="chbStepOverFieldAccessProperties" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverFieldAccessProperties}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverFieldAccessProperties}" /> |
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" |
||||
xmlns:sd="http://icsharpcode.net/sharpdevelop/core" |
||||
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop" |
||||
xmlns:debugger="clr-namespace:ICSharpCode.SharpDevelop.Services;assembly=Debugger.AddIn" |
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
xmlns:widgets="http://icsharpcode.net/sharpdevelop/widgets"> |
||||
<StackPanel> |
||||
<GroupBox Margin="5" Header="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping}"> |
||||
<widgets:StackPanelWithSpacing SpaceBetweenItems="5"> |
||||
<CheckBox Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.DecompileCodeWithoutSymbols}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.DecompileCodeWithoutSymbols}" /> |
||||
<CheckBox x:Name="chbStepOverDebuggerAttributes" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverDebuggerAttributes}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverDebuggerAttributes}" /> |
||||
<CheckBox x:Name="chbStepOverAllProperties" |
||||
Checked="ChbStepOverAllProperties_CheckedChanged" |
||||
Unchecked="ChbStepOverAllProperties_CheckedChanged" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverAllProperties}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverAllProperties}" /> |
||||
<CheckBox x:Name="chbStepOverSingleLineProperties" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverSingleLineProperties}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverSingleLineProperties}" /> |
||||
<CheckBox x:Name="chbStepOverFieldAccessProperties" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.Stepping.StepOverFieldAccessProperties}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.StepOverFieldAccessProperties}" /> |
||||
</widgets:StackPanelWithSpacing> |
||||
</GroupBox> |
||||
</GroupBox> |
||||
<GroupBox Margin="5" Header="{sd:Localize Dialog.Options.IDEOptions.Debugging.Exceptions}"> |
||||
<widgets:StackPanelWithSpacing SpaceBetweenItems="5"> |
||||
<CheckBox x:Name="chbPauseOnHandledExceptions" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.PauseOnHandledExceptions}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.PauseOnHandledExceptions}" /> |
||||
<CheckBox x:Name="chbPauseOnHandledExceptions" |
||||
Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.PauseOnHandledExceptions}" |
||||
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.PauseOnHandledExceptions}" /> |
||||
</widgets:StackPanelWithSpacing> |
||||
</GroupBox> |
||||
</StackPanel> |
||||
</StackPanel> |
||||
</gui:OptionPanel> |
@ -1,16 +0,0 @@
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?> |
||||
<UserControl |
||||
x:Class="Debugger.AddIn.Pads.Controls.SimpleListViewControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" |
||||
xmlns:core="http://icsharpcode.net/sharpdevelop/core" |
||||
DataContext="{Binding RelativeSource={RelativeSource Self}}"> |
||||
<ListView |
||||
ItemsSource="{Binding ItemCollection}" |
||||
x:Name="ItemsListView"> |
||||
<ListView.View> |
||||
<GridView> |
||||
<GridView.Columns> |
||||
</GridView.Columns> |
||||
</GridView> |
||||
</ListView.View> |
||||
</ListView> |
||||
</UserControl> |
@ -1,62 +0,0 @@
@@ -1,62 +0,0 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Collections.ObjectModel; |
||||
using System.Dynamic; |
||||
using System.Windows.Controls; |
||||
using System.Windows.Data; |
||||
using System.Windows.Input; |
||||
|
||||
namespace Debugger.AddIn.Pads.Controls |
||||
{ |
||||
public partial class SimpleListViewControl : UserControl |
||||
{ |
||||
public event EventHandler ItemActivated; |
||||
|
||||
private ObservableCollection<ExpandoObject> itemCollection = new ObservableCollection<ExpandoObject>(); |
||||
|
||||
public SimpleListViewControl() |
||||
{ |
||||
InitializeComponent(); |
||||
|
||||
ItemsListView.MouseDoubleClick += new MouseButtonEventHandler(ItemsListView_MouseDoubleClick); |
||||
} |
||||
|
||||
public ObservableCollection<ExpandoObject> ItemCollection { |
||||
get { return itemCollection; } |
||||
} |
||||
|
||||
public IList<ExpandoObject> SelectedItems { |
||||
get { |
||||
var result = new List<ExpandoObject>(); |
||||
foreach (var item in ItemsListView.SelectedItems) |
||||
result.Add((ExpandoObject)item); |
||||
|
||||
return result; |
||||
} |
||||
} |
||||
|
||||
public void ClearColumns() |
||||
{ |
||||
((GridView)this.ItemsListView.View).Columns.Clear(); |
||||
} |
||||
|
||||
public void AddColumn(string header, Binding binding, double width) |
||||
{ |
||||
GridViewColumn column = new GridViewColumn(); |
||||
column.Width = width; |
||||
column.DisplayMemberBinding = binding; |
||||
column.Header = header; |
||||
((GridView)this.ItemsListView.View).Columns.Add(column); |
||||
} |
||||
|
||||
void ItemsListView_MouseDoubleClick(object sender, MouseButtonEventArgs e) |
||||
{ |
||||
var handler = ItemActivated; |
||||
if (handler != null) |
||||
handler(this, EventArgs.Empty); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,180 @@
@@ -0,0 +1,180 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using System.Reflection; |
||||
using System.Windows; |
||||
using System.Windows.Controls; |
||||
using System.Windows.Media; |
||||
using ICSharpCode.Core; |
||||
using ICSharpCode.SharpDevelop.Widgets; |
||||
|
||||
namespace Debugger.AddIn.Pads.ParallelPad |
||||
{ |
||||
public class ParallelStackFrameModel : ViewModelBase |
||||
{ |
||||
FontWeight fontWeight; |
||||
|
||||
public FontWeight FontWeight { |
||||
get { return fontWeight; } |
||||
set { |
||||
fontWeight = value; |
||||
RaisePropertyChanged(() => FontWeight); |
||||
} |
||||
} |
||||
|
||||
Brush foreground; |
||||
|
||||
public Brush Foreground { |
||||
get { return foreground; } |
||||
set { |
||||
foreground = value; |
||||
RaisePropertyChanged(() => Foreground); |
||||
} |
||||
} |
||||
|
||||
ImageSource image; |
||||
|
||||
public ImageSource Image { |
||||
get { return image; } |
||||
set { |
||||
image = value; |
||||
RaisePropertyChanged(() => Image); |
||||
} |
||||
} |
||||
|
||||
string methodName; |
||||
|
||||
public string MethodName { |
||||
get { return methodName; } |
||||
set { |
||||
methodName = value; |
||||
RaisePropertyChanged(() => MethodName); |
||||
} |
||||
} |
||||
|
||||
bool isRunningStackFrame; |
||||
|
||||
public bool IsRunningStackFrame { |
||||
get { return isRunningStackFrame; } |
||||
set { |
||||
isRunningStackFrame = value; |
||||
RaisePropertyChanged(() => IsRunningStackFrame); |
||||
} |
||||
} |
||||
} |
||||
|
||||
public class ThreadModel : ViewModelBase |
||||
{ |
||||
Thread thread; |
||||
|
||||
public ThreadModel(Thread thread) |
||||
{ |
||||
if (thread == null) |
||||
throw new ArgumentNullException("thread"); |
||||
this.thread = thread; |
||||
thread.NameChanged += delegate { RaisePropertyChanged(() => Name); }; |
||||
} |
||||
|
||||
public Thread Thread { |
||||
get { return thread; } |
||||
} |
||||
|
||||
public uint ID { |
||||
get { return thread.ID; } |
||||
} |
||||
|
||||
public string Name { |
||||
get { return thread.Name; } |
||||
} |
||||
|
||||
public string Priority { |
||||
get { |
||||
switch (thread.Priority) { |
||||
case System.Threading.ThreadPriority.Highest: |
||||
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Highest"); |
||||
case System.Threading.ThreadPriority.AboveNormal: |
||||
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.AboveNormal"); |
||||
case System.Threading.ThreadPriority.Normal: |
||||
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Normal"); |
||||
case System.Threading.ThreadPriority.BelowNormal: |
||||
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.BelowNormal"); |
||||
case System.Threading.ThreadPriority.Lowest: |
||||
return ResourceService.GetString("MainWindow.Windows.Debug.Threads.Priority.Lowest"); |
||||
default: |
||||
return thread.Priority.ToString(); |
||||
} |
||||
} |
||||
} |
||||
|
||||
public string Location { |
||||
get { |
||||
if (thread.Process.IsPaused && thread.MostRecentStackFrame != null) |
||||
return thread.MostRecentStackFrame.MethodInfo.Name; |
||||
return ResourceService.GetString("Global.NA"); |
||||
} |
||||
} |
||||
|
||||
public string Frozen { |
||||
get { |
||||
return ResourceService.GetString(thread.Suspended ? "Global.Yes" : "Global.No"); |
||||
} |
||||
} |
||||
} |
||||
|
||||
public class ModuleModel : ViewModelBase |
||||
{ |
||||
Module module; |
||||
|
||||
public ModuleModel(Module module) |
||||
{ |
||||
if (module == null) |
||||
throw new ArgumentNullException("module"); |
||||
this.module = module; |
||||
this.module.SymbolsUpdated += delegate { |
||||
RaisePropertyChanged(() => Name); |
||||
RaisePropertyChanged(() => Address); |
||||
RaisePropertyChanged(() => Path); |
||||
RaisePropertyChanged(() => Order); |
||||
RaisePropertyChanged(() => Symbols); |
||||
}; |
||||
} |
||||
|
||||
public Module Module { |
||||
get { return module; } |
||||
} |
||||
|
||||
public string Name { |
||||
get { return module.Name; } |
||||
} |
||||
|
||||
public string Address { |
||||
get { return string.Format("{0:X8}", module.BaseAdress); } |
||||
} |
||||
|
||||
public string Path { |
||||
get { |
||||
if (module.IsDynamic) |
||||
return StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.DynamicModule}"); |
||||
if (module.IsInMemory) |
||||
return StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.InMemoryModule}"); |
||||
|
||||
return module.FullPath; |
||||
} |
||||
} |
||||
|
||||
public string Order { |
||||
get { |
||||
return module.OrderOfLoading.ToString(); |
||||
} |
||||
} |
||||
|
||||
public string Symbols { |
||||
get { |
||||
if (module.HasSymbols) |
||||
return StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.HasSymbols}"); |
||||
return StringParser.Parse("${res:MainWindow.Windows.Debug.Modules.HasNoSymbols}"); |
||||
} |
||||
} |
||||
} |
||||
} |
@ -1,23 +0,0 @@
@@ -1,23 +0,0 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the BSD license (for details please see \src\AddIns\Debugger\Debugger.AddIn\license.txt)
|
||||
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Linq; |
||||
using System.Text; |
||||
using System.ComponentModel; |
||||
using ICSharpCode.SharpDevelop; |
||||
|
||||
namespace Debugger.AddIn.Visualizers |
||||
{ |
||||
public class ViewModelBase : INotifyPropertyChanged |
||||
{ |
||||
protected void OnPropertyChanged(string propertyName) |
||||
{ |
||||
var handler = PropertyChanged; |
||||
if (handler != null) |
||||
handler(this, new PropertyChangedEventArgs(propertyName)); |
||||
} |
||||
public event PropertyChangedEventHandler PropertyChanged; |
||||
} |
||||
} |
@ -0,0 +1,154 @@
@@ -0,0 +1,154 @@
|
||||
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
|
||||
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
|
||||
|
||||
using System; |
||||
using System.Collections.Generic; |
||||
using System.Reflection; |
||||
using System.Text; |
||||
|
||||
namespace Debugger |
||||
{ |
||||
/// <summary>
|
||||
/// Description of IDStringProvider.
|
||||
/// </summary>
|
||||
public static class IDStringProvider |
||||
{ |
||||
/// <summary>
|
||||
/// Gets the ID string (C# 4.0 spec, §A.3.1) for the specified entity.
|
||||
/// </summary>
|
||||
public static string GetIDString(MemberInfo member) |
||||
{ |
||||
StringBuilder b = new StringBuilder(); |
||||
if (member is Type) { |
||||
b.Append("T:"); |
||||
AppendTypeName(b, (Type)member); |
||||
} else { |
||||
if (member is FieldInfo) |
||||
b.Append("F:"); |
||||
else if (member is PropertyInfo) |
||||
b.Append("P:"); |
||||
else if (member is EventInfo) |
||||
b.Append("E:"); |
||||
else if (member is MethodBase) |
||||
b.Append("M:"); |
||||
AppendTypeName(b, member.DeclaringType); |
||||
b.Append('.'); |
||||
b.Append(member.Name.Replace('.', '#')); |
||||
IList<ParameterInfo> parameters; |
||||
Type explicitReturnType = null; |
||||
if (member is PropertyInfo) { |
||||
parameters = ((PropertyInfo)member).GetIndexParameters(); |
||||
} else if (member is MethodInfo) { |
||||
MethodInfo mr = (MethodInfo)member; |
||||
if (mr.IsGenericMethod) { |
||||
b.Append("``"); |
||||
b.Append(mr.GetGenericArguments().Length); |
||||
} |
||||
parameters = mr.GetParameters(); |
||||
if (mr.Name == "op_Implicit" || mr.Name == "op_Explicit") { |
||||
explicitReturnType = mr.ReturnType; |
||||
} |
||||
} else { |
||||
parameters = null; |
||||
} |
||||
if (parameters != null && parameters.Count > 0) { |
||||
b.Append('('); |
||||
for (int i = 0; i < parameters.Count; i++) { |
||||
if (i > 0) b.Append(','); |
||||
AppendTypeName(b, parameters[i].ParameterType); |
||||
} |
||||
b.Append(')'); |
||||
} |
||||
if (explicitReturnType != null) { |
||||
b.Append('~'); |
||||
AppendTypeName(b, explicitReturnType); |
||||
} |
||||
} |
||||
return b.ToString(); |
||||
} |
||||
|
||||
static void AppendTypeName(StringBuilder b, Type type) |
||||
{ |
||||
if (type == null) { |
||||
return; |
||||
} |
||||
if (type.IsGenericType) { |
||||
AppendTypeNameWithArguments(b, type.GetElementType(), type.GetGenericArguments()); |
||||
} else if (type.HasElementType) { |
||||
AppendTypeName(b, type.GetElementType()); |
||||
if (type.IsArray) { |
||||
b.Append('['); |
||||
if (type.GetArrayRank() > 1) { |
||||
for (int i = 0; i < type.GetArrayRank(); i++) { |
||||
if (i > 0) |
||||
b.Append(','); |
||||
b.Append("0:"); |
||||
} |
||||
} |
||||
b.Append(']'); |
||||
} |
||||
if (type.IsByRef) { |
||||
b.Append('@'); |
||||
} |
||||
if (type.IsPointer) { |
||||
b.Append('*'); |
||||
} |
||||
} else { |
||||
if (type.IsGenericParameter) { |
||||
b.Append('`'); |
||||
if (type.DeclaringMethod != null) { |
||||
b.Append('`'); |
||||
} |
||||
b.Append(type.GenericParameterPosition); |
||||
} else if (type.DeclaringType != null) { |
||||
AppendTypeName(b, type.DeclaringType); |
||||
b.Append('.'); |
||||
b.Append(type.Name); |
||||
} else { |
||||
b.Append(type.FullName); |
||||
} |
||||
} |
||||
} |
||||
|
||||
static int AppendTypeNameWithArguments(StringBuilder b, Type type, IList<Type> genericArguments) |
||||
{ |
||||
int outerTypeParameterCount = 0; |
||||
if (type.DeclaringType != null) { |
||||
Type declType = type.DeclaringType; |
||||
outerTypeParameterCount = AppendTypeNameWithArguments(b, declType, genericArguments); |
||||
b.Append('.'); |
||||
} else if (!string.IsNullOrEmpty(type.Namespace)) { |
||||
b.Append(type.Namespace); |
||||
b.Append('.'); |
||||
} |
||||
int localTypeParameterCount = 0; |
||||
b.Append(SplitTypeParameterCountFromReflectionName(type.Name, out localTypeParameterCount)); |
||||
|
||||
if (localTypeParameterCount > 0) { |
||||
int totalTypeParameterCount = outerTypeParameterCount + localTypeParameterCount; |
||||
b.Append('{'); |
||||
for (int i = outerTypeParameterCount; i < totalTypeParameterCount && i < genericArguments.Count; i++) { |
||||
if (i > outerTypeParameterCount) b.Append(','); |
||||
AppendTypeName(b, genericArguments[i]); |
||||
} |
||||
b.Append('}'); |
||||
} |
||||
return outerTypeParameterCount + localTypeParameterCount; |
||||
} |
||||
|
||||
static string SplitTypeParameterCountFromReflectionName(string reflectionName, out int typeParameterCount) |
||||
{ |
||||
int pos = reflectionName.LastIndexOf('`'); |
||||
if (pos < 0) { |
||||
typeParameterCount = 0; |
||||
return reflectionName; |
||||
} else { |
||||
string typeCount = reflectionName.Substring(pos + 1); |
||||
if (int.TryParse(typeCount, out typeParameterCount)) |
||||
return reflectionName.Substring(0, pos); |
||||
else |
||||
return reflectionName; |
||||
} |
||||
} |
||||
} |
||||
} |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue