Registry Client improved
diff --git a/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientExtensions.cs b/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientExtensions.cs
index 3fa280c..8c96100 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientExtensions.cs
+++ b/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientExtensions.cs
@@ -11,6 +11,7 @@
 using BaSyx.API.Components;
 using BaSyx.Models.Connectivity.Descriptors;
 using BaSyx.Utils.ResultHandling;
+using System;
 using System.Threading;
 
 namespace BaSyx.Registry.Client.Http
@@ -20,13 +21,23 @@
         public static IResult<IAssetAdministrationShellDescriptor> RegisterAssetAdministrationShell(this IAssetAdministrationShellServiceProvider serviceProvider) => RegisterAssetAdministrationShell(serviceProvider, null);
         public static IResult<IAssetAdministrationShellDescriptor> RegisterAssetAdministrationShell(this IAssetAdministrationShellServiceProvider serviceProvider, RegistryClientSettings settings)
         {
-            RegistryHttpClient registryHttpClient = new RegistryHttpClient(settings);
-            if (registryHttpClient.Settings?.RegistryConfig?.RepeatRegistration != null)
-                registryHttpClient.RepeatRegistration(serviceProvider.ServiceDescriptor, new CancellationTokenSource());
-
+            RegistryClientSettings registryClientSettings = settings ?? RegistryClientSettings.LoadSettings();
+            RegistryHttpClient registryHttpClient = new RegistryHttpClient(registryClientSettings);
             IResult<IAssetAdministrationShellDescriptor> result = registryHttpClient.CreateOrUpdateAssetAdministrationShellRegistration(serviceProvider.ServiceDescriptor.Identification.Id, serviceProvider.ServiceDescriptor);
-
             return result;
         }
+
+        public static IResult<IAssetAdministrationShellDescriptor> RegisterAssetAdministrationShellWithRepeat(this IAssetAdministrationShellServiceProvider serviceProvider, RegistryClientSettings settings, TimeSpan interval, out CancellationTokenSource cancellationToken)
+        {
+            RegistryClientSettings registryClientSettings = settings ?? RegistryClientSettings.LoadSettings();
+            RegistryHttpClient registryHttpClient = new RegistryHttpClient(registryClientSettings);
+
+            cancellationToken = new CancellationTokenSource();
+            registryHttpClient.RepeatRegistration(serviceProvider.ServiceDescriptor, interval, cancellationToken);
+
+            IResult<IAssetAdministrationShellDescriptor> result = registryHttpClient.CreateOrUpdateAssetAdministrationShellRegistration(serviceProvider.ServiceDescriptor.Identification.Id, serviceProvider.ServiceDescriptor);
+            return result;
+        }
+
     }
 }
diff --git a/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientSettings.cs b/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientSettings.cs
index 70f61aa..b219579 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientSettings.cs
+++ b/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientSettings.cs
@@ -16,15 +16,12 @@
     public class RegistryClientSettings : Settings<RegistryClientSettings>
     {        
         public RegistryConfiguration RegistryConfig { get; set; } = new RegistryConfiguration();
-
      
         public class RegistryConfiguration 
         {
             [XmlElement]
             public string RegistryUrl { get; set; }
             [XmlElement]
-            public int? RepeatRegistration { get; set; }
-            [XmlElement]
             public string RegisterAtAAS { get; set; }
         }
        
diff --git a/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientSettings.xml b/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientSettings.xml
index cbdc11b..9dd144c 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientSettings.xml
+++ b/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryClientSettings.xml
@@ -7,7 +7,6 @@
   </ClientConfig>
   <RegistryConfig>
     <RegistryUrl>http://localhost:4999</RegistryUrl>
-    <RepeatRegistration>10000</RepeatRegistration>
   </RegistryConfig>
   <ProxyConfig>
     <UseProxy>false</UseProxy>
diff --git a/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryHttpClient.cs b/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryHttpClient.cs
index 61f5097..c4cdf3a 100644
--- a/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryHttpClient.cs
+++ b/sdks/dotnet/basyx-components/BaSyx.Registry.Client.Http/RegistryHttpClient.cs
@@ -34,7 +34,6 @@
         public const string SUBMODEL_PATH = "submodels";
         public const string PATH_SEPERATOR = "/";
 
-        private int RepeatRegistrationInterval = -1;
         private string baseUrl = null;
         
         private CancellationTokenSource RepeatRegistrationCancellationToken = null;
@@ -44,9 +43,6 @@
         {
             LoadProxy(settings.ProxyConfig);
 
-            if (settings.RegistryConfig.RepeatRegistration.HasValue)
-                RepeatRegistrationInterval = settings.RegistryConfig.RepeatRegistration.Value;
-
             if (settings.ClientConfig.RequestConfig.RequestTimeout.HasValue)
                 RequestTimeout = settings.ClientConfig.RequestConfig.RequestTimeout.Value;
             else
@@ -85,7 +81,7 @@
             return new Uri(path);
         }
 
-        public void RepeatRegistration(IAssetAdministrationShellDescriptor aasDescriptor, CancellationTokenSource cancellationToken)
+        public void RepeatRegistration(IAssetAdministrationShellDescriptor aasDescriptor, TimeSpan interval, CancellationTokenSource cancellationToken)
         {
             RepeatRegistrationCancellationToken = cancellationToken;
             Task.Factory.StartNew(async () =>
@@ -94,7 +90,7 @@
                 {
                     IResult<IAssetAdministrationShellDescriptor> result = CreateOrUpdateAssetAdministrationShellRegistration(aasDescriptor.Identification.Id, aasDescriptor);
                     logger.Info("Registration-Renewal - Success: " + result.Success + " | Messages: " + result.Messages.ToString());
-                    await Task.Delay(RepeatRegistrationInterval);
+                    await Task.Delay(interval);
                 }
             }, cancellationToken.Token, TaskCreationOptions.LongRunning, TaskScheduler.Default);
         } 
@@ -157,9 +153,6 @@
             if (string.IsNullOrEmpty(aasId))
                 return new Result(new ArgumentNullException(nameof(aasId)));
 
-            if (RepeatRegistrationInterval > 0)
-                RepeatRegistrationCancellationToken?.Cancel();
-
             var request = base.CreateRequest(GetUri(aasId), HttpMethod.Delete);
             var response = base.SendRequest(request, RequestTimeout);
             return base.EvaluateResponse(response, response.Entity);