diff --git a/SpineViewer/Spine/Implementations/Spine21.cs b/SpineViewer/Spine/Implementations/Spine/Spine21.cs
similarity index 99%
rename from SpineViewer/Spine/Implementations/Spine21.cs
rename to SpineViewer/Spine/Implementations/Spine/Spine21.cs
index e80ff4e..7787993 100644
--- a/SpineViewer/Spine/Implementations/Spine21.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine21.cs
@@ -8,10 +8,10 @@ using System.Text;
using System.Threading.Tasks;
using SpineRuntime21;
-namespace SpineViewer.Spine.Implementations
+namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(Version.V21)]
- internal class Spine21 : Spine
+ internal class Spine21 : SpineViewer.Spine.Spine
{
private class TextureLoader : SpineRuntime21.TextureLoader
{
diff --git a/SpineViewer/Spine/Implementations/Spine36.cs b/SpineViewer/Spine/Implementations/Spine/Spine36.cs
similarity index 99%
rename from SpineViewer/Spine/Implementations/Spine36.cs
rename to SpineViewer/Spine/Implementations/Spine/Spine36.cs
index dee9c41..bc8e387 100644
--- a/SpineViewer/Spine/Implementations/Spine36.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine36.cs
@@ -8,10 +8,10 @@ using System.Text;
using System.Threading.Tasks;
using SpineRuntime36;
-namespace SpineViewer.Spine.Implementations
+namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(Version.V36)]
- internal class Spine36 : Spine
+ internal class Spine36 : SpineViewer.Spine.Spine
{
private class TextureLoader : SpineRuntime36.TextureLoader
{
diff --git a/SpineViewer/Spine/Implementations/Spine37.cs b/SpineViewer/Spine/Implementations/Spine/Spine37.cs
similarity index 99%
rename from SpineViewer/Spine/Implementations/Spine37.cs
rename to SpineViewer/Spine/Implementations/Spine/Spine37.cs
index 670d351..08afb90 100644
--- a/SpineViewer/Spine/Implementations/Spine37.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine37.cs
@@ -5,10 +5,10 @@ using System.Text;
using System.Threading.Tasks;
using SpineRuntime37;
-namespace SpineViewer.Spine.Implementations
+namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(Version.V37)]
- internal class Spine37 : Spine
+ internal class Spine37 : SpineViewer.Spine.Spine
{
private class TextureLoader : SpineRuntime37.TextureLoader
{
diff --git a/SpineViewer/Spine/Implementations/Spine38.cs b/SpineViewer/Spine/Implementations/Spine/Spine38.cs
similarity index 99%
rename from SpineViewer/Spine/Implementations/Spine38.cs
rename to SpineViewer/Spine/Implementations/Spine/Spine38.cs
index 0e72cad..ac0dc83 100644
--- a/SpineViewer/Spine/Implementations/Spine38.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine38.cs
@@ -7,12 +7,11 @@ using System.Text;
using System.Threading.Tasks;
using SpineRuntime38;
using SpineRuntime38.Attachments;
-using SpineViewer.Spine;
-namespace SpineViewer.Spine.Implementations
+namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(Version.V38)]
- internal class Spine38 : Spine
+ internal class Spine38 : SpineViewer.Spine.Spine
{
private class TextureLoader : SpineRuntime38.TextureLoader
{
diff --git a/SpineViewer/Spine/Implementations/Spine40.cs b/SpineViewer/Spine/Implementations/Spine/Spine40.cs
similarity index 99%
rename from SpineViewer/Spine/Implementations/Spine40.cs
rename to SpineViewer/Spine/Implementations/Spine/Spine40.cs
index 4036d8d..4192d04 100644
--- a/SpineViewer/Spine/Implementations/Spine40.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine40.cs
@@ -7,10 +7,10 @@ using System.Text;
using System.Threading.Tasks;
using SpineRuntime40;
-namespace SpineViewer.Spine.Implementations
+namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(Version.V40)]
- internal class Spine40 : Spine
+ internal class Spine40 : SpineViewer.Spine.Spine
{
private class TextureLoader : SpineRuntime40.TextureLoader
{
diff --git a/SpineViewer/Spine/Implementations/Spine41.cs b/SpineViewer/Spine/Implementations/Spine/Spine41.cs
similarity index 99%
rename from SpineViewer/Spine/Implementations/Spine41.cs
rename to SpineViewer/Spine/Implementations/Spine/Spine41.cs
index a4abe7d..fdd5ae0 100644
--- a/SpineViewer/Spine/Implementations/Spine41.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine41.cs
@@ -7,10 +7,10 @@ using System.Text;
using System.Threading.Tasks;
using SpineRuntime41;
-namespace SpineViewer.Spine.Implementations
+namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(Version.V41)]
- internal class Spine41 : Spine
+ internal class Spine41 : SpineViewer.Spine.Spine
{
private class TextureLoader : SpineRuntime41.TextureLoader
{
diff --git a/SpineViewer/Spine/Implementations/Spine42.cs b/SpineViewer/Spine/Implementations/Spine/Spine42.cs
similarity index 99%
rename from SpineViewer/Spine/Implementations/Spine42.cs
rename to SpineViewer/Spine/Implementations/Spine/Spine42.cs
index 6c6b6a8..7b6be60 100644
--- a/SpineViewer/Spine/Implementations/Spine42.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine42.cs
@@ -7,10 +7,10 @@ using System.Text;
using System.Threading.Tasks;
using SpineRuntime42;
-namespace SpineViewer.Spine.Implementations
+namespace SpineViewer.Spine.Implementations.Spine
{
[SpineImplementation(Version.V42)]
- internal class Spine42 : Spine
+ internal class Spine42 : SpineViewer.Spine.Spine
{
private class TextureLoader : SpineRuntime42.TextureLoader
{
diff --git a/SpineViewer/Spine/Spine.cs b/SpineViewer/Spine/Spine.cs
index 8f528ef..5a2c9ef 100644
--- a/SpineViewer/Spine/Spine.cs
+++ b/SpineViewer/Spine/Spine.cs
@@ -17,8 +17,6 @@ using System.Globalization;
namespace SpineViewer.Spine
{
-
-
///
/// Spine 实现类标记
///
@@ -70,6 +68,8 @@ namespace SpineViewer.Spine
var attr = type.GetCustomAttribute();
if (attr is not null)
{
+ if (ImplementationTypes.ContainsKey(attr.Version))
+ throw new InvalidOperationException($"Multiple implementations found: {attr.Version}");
ImplementationTypes[attr.Version] = type;
}
}