Skip to content

Commit e556581

Browse files
committed
Added CreateInstanceFromType.
1 parent 9ae4bdd commit e556581

File tree

7 files changed

+12
-6
lines changed

7 files changed

+12
-6
lines changed

ReClass.NET/DataExchange/ReClass/ReClass2007File.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ private IEnumerable<BaseNode> ReadNodeRows(IEnumerable<DataRow> rows, ClassNode
136136
continue;
137137
}
138138

139-
var node = Activator.CreateInstance(nodeType) as BaseNode;
139+
var node = BaseNode.CreateInstanceFromType(nodeType);
140140
if (node == null)
141141
{
142142
logger.Log(LogLevel.Error, $"Could not create node of type: {nodeType}");

ReClass.NET/DataExchange/ReClass/ReClassFile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ private IEnumerable<BaseNode> ReadNodeElements(IEnumerable<XElement> elements, C
155155
continue;
156156
}
157157

158-
var node = Activator.CreateInstance(nodeType) as BaseNode;
158+
var node = BaseNode.CreateInstanceFromType(nodeType);
159159
if (node == null)
160160
{
161161
logger.Log(LogLevel.Error, $"Could not create node of type: {nodeType}");

ReClass.NET/DataExchange/ReClass/ReClassNetFile.Read.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ private IEnumerable<BaseNode> ReadNodeElements(IEnumerable<XElement> elements, C
122122
continue;
123123
}
124124

125-
var node = Activator.CreateInstance(nodeType) as BaseNode;
125+
var node = BaseNode.CreateInstanceFromType(nodeType);
126126
if (node == null)
127127
{
128128
logger.Log(LogLevel.Error, $"Could not create node of type: {nodeType}");

ReClass.NET/DataExchange/ReClass/ReClassQtFile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ private IEnumerable<BaseNode> ReadNodeElements(IEnumerable<XElement> elements, C
135135
continue;
136136
}
137137

138-
var node = Activator.CreateInstance(nodeType) as BaseNode;
138+
var node = BaseNode.CreateInstanceFromType(nodeType);
139139
if (node == null)
140140
{
141141
logger.Log(LogLevel.Error, $"Could not create node of type: {nodeType}");

ReClass.NET/Nodes/BaseContainerNode.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,8 @@ public virtual bool ReplaceChildNode(int index, Type nodeType, ref List<BaseNode
124124

125125
var oldNode = nodes[index];
126126

127-
if (!(Activator.CreateInstance(nodeType) is BaseNode node))
127+
var node = CreateInstanceFromType(nodeType);
128+
if (node == null)
128129
{
129130
return false;
130131
}

ReClass.NET/Nodes/BaseNode.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ private void ObjectInvariants()
6363
Contract.Invariant(levelsOpen != null);
6464
}
6565

66+
public static BaseNode CreateInstanceFromType(Type nodeType)
67+
{
68+
return Activator.CreateInstance(nodeType) as BaseNode;
69+
}
70+
6671
/// <summary>Constructor which sets a unique <see cref="Name"/>.</summary>
6772
protected BaseNode()
6873
{

ReClass.NET/UI/NodeTypesBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ private static void GetNodeInfoFromType(Type nodeType, out string label, out Ima
147147
{
148148
Contract.Requires(nodeType != null);
149149

150-
var node = Activator.CreateInstance(nodeType) as BaseNode;
150+
var node = BaseNode.CreateInstanceFromType(nodeType);
151151
if (node == null)
152152
{
153153
throw new InvalidOperationException($"'{nodeType}' is not a valid node type.");

0 commit comments

Comments
 (0)