IReliableStateManager.GetOrAddAsync Methode

Definition

Überlädt

GetOrAddAsync<T>(String)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

GetOrAddAsync<T>(Uri)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

GetOrAddAsync<T>(ITransaction, String)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

GetOrAddAsync<T>(ITransaction, Uri)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

GetOrAddAsync<T>(String, TimeSpan)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

GetOrAddAsync<T>(Uri, TimeSpan)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

GetOrAddAsync<T>(ITransaction, String, TimeSpan)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

GetOrAddAsync<T>(ITransaction, Uri, TimeSpan)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

GetOrAddAsync<T>(String)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

public System.Threading.Tasks.Task<T> GetOrAddAsync<T> (string name) where T : Microsoft.ServiceFabric.Data.IReliableState;
abstract member GetOrAddAsync : string -> System.Threading.Tasks.Task<'T (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)> (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)
Public Function GetOrAddAsync(Of T As IReliableState) (name As String) As Task(Of T)

Typparameter

T

Wenn Sie den IReliableState Typ angeben, können Sie entweder einen Klassentyp oder einen Schnittstellentyp anfordern.

Wenn Sie einen Klassentyp angeben, versucht das System, eine instance dieses Typs zurückzugeben. Wenn ein instance dieses Typs nicht instanziiert werden kann (z. B. abstrakte Klasse, kein geeigneter Konstruktor), wird eine ArgumentException ausgelöst.

Wenn Sie einen Schnittstellentyp angeben, versucht der Manager, die Schnittstelle in einen konkreten Typ aufzulösen. Wenn die Typzuordnung vom Benutzer angegeben wird, verwendet diese Methode die vom Benutzer angegebene Zuordnung, um den Typ aufzulösen (noch nicht unterstützt). Wenn die Typzuordnung vom Benutzer nicht angegeben wird, wählt diese Methode die Standardimplementierung für die angegebene Schnittstelle aus. Wenn der angegebene Schnittstellentyp keine Standardimplementierung aufweist oder eine vom Benutzer angegebene Zuordnung für den Typ nicht angegeben ist oder der Typ ungültig ist, löst diese Methode ArgumentException aus.

Parameter

name
String

Der Name von IReliableState. Dieser Name muss in diesem IReliableStateManager typübergreifend IReliableState eindeutig sein, einschließlich nicht verwandter Typen.

Gibt zurück

Task<T>

Aufgabe, die den asynchronen Vorgang darstellt. Das Vorgangsergebnis ist der zuverlässige Zustand instance.

Ausnahmen

name ist NULL.

Ein instance des Typs T kann nicht erstellt werden, oder die vorhandene IReliableState instance ist nicht vom Typ T.

Der Vorgang konnte innerhalb des Standardtimeouts nicht abgeschlossen werden.

Wird ausgelöst, wenn der IReliableStateManager nicht in Primaryist.

Gibt an, dass der Reliable State Manager geschlossen ist.

Der Vorgang wurde intern vom System fehlerhaft. Wiederholen Sie den Vorgang.

Hinweise

Dies ist ein atomarer Vorgang. Wenn ein IReliableState erstellt werden muss, wird es entweder abgeschlossen und erfolgreich zurückgegeben, oder es wird nicht erstellt.

Gilt für:

GetOrAddAsync<T>(Uri)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

public System.Threading.Tasks.Task<T> GetOrAddAsync<T> (Uri name) where T : Microsoft.ServiceFabric.Data.IReliableState;
abstract member GetOrAddAsync : Uri -> System.Threading.Tasks.Task<'T (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)> (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)
Public Function GetOrAddAsync(Of T As IReliableState) (name As Uri) As Task(Of T)

Typparameter

T

Wenn Sie den IReliableState Typ angeben, können Sie entweder einen Klassentyp oder einen Schnittstellentyp anfordern.

Wenn Sie einen Klassentyp angeben, versucht das System, eine instance dieses Typs zurückzugeben. Wenn ein instance dieses Typs nicht instanziiert werden kann (z. B. abstrakte Klasse, kein geeigneter Konstruktor), wird eine ArgumentException ausgelöst.

Wenn Sie einen Schnittstellentyp angeben, versucht der Manager, die Schnittstelle in einen konkreten Typ aufzulösen. Wenn die Typzuordnung vom Benutzer angegeben wird, verwendet diese Methode die vom Benutzer angegebene Zuordnung, um den Typ aufzulösen (noch nicht unterstützt). Wenn die Typzuordnung vom Benutzer nicht angegeben wird, wählt diese Methode die Standardimplementierung für die angegebene Schnittstelle aus. Wenn der angegebene Schnittstellentyp keine Standardimplementierung aufweist oder eine vom Benutzer angegebene Zuordnung für den Typ nicht angegeben ist oder der Typ ungültig ist, löst diese Methode ArgumentException aus.

Parameter

name
Uri

Der Name von IReliableState. Dieser Name muss in diesem IReliableStateManager typübergreifend IReliableState eindeutig sein, einschließlich nicht verwandter Typen.

Gibt zurück

Task<T>

Aufgabe, die den asynchronen Vorgang darstellt. Das Vorgangsergebnis ist der zuverlässige Zustand instance.

Ausnahmen

name ist NULL.

Ein instance des Typs T kann nicht erstellt werden, oder die vorhandene IReliableState instance ist nicht vom Typ T.

Der Vorgang konnte innerhalb des Standardtimeouts nicht abgeschlossen werden.

Wird ausgelöst, wenn der IReliableStateManager nicht in Primaryist.

Gibt an, dass der Reliable State Manager geschlossen ist.

Der Vorgang wurde intern vom System fehlerhaft. Wiederholen Sie den Vorgang.

Hinweise

Dies ist ein atomarer Vorgang. Wenn ein IReliableState erstellt werden muss, wird es entweder abgeschlossen und erfolgreich zurückgegeben, oder es wird nicht erstellt.

Gilt für:

GetOrAddAsync<T>(ITransaction, String)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen, und gibt es zurück, wenn er noch nicht vorhanden ist.

public System.Threading.Tasks.Task<T> GetOrAddAsync<T> (Microsoft.ServiceFabric.Data.ITransaction tx, string name) where T : Microsoft.ServiceFabric.Data.IReliableState;
abstract member GetOrAddAsync : Microsoft.ServiceFabric.Data.ITransaction * string -> System.Threading.Tasks.Task<'T (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)> (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)
Public Function GetOrAddAsync(Of T As IReliableState) (tx As ITransaction, name As String) As Task(Of T)

Typparameter

T

Wenn Sie den IReliableState Typ angeben, können Sie entweder einen Klassentyp oder einen Schnittstellentyp anfordern.

Wenn Sie einen Klassentyp angeben, versucht das System, eine instance dieses Typs zurückzugeben. Wenn ein instance dieses Typs nicht instanziiert werden kann (z. B. abstrakte Klasse, kein geeigneter Konstruktor), wird eine ArgumentException ausgelöst.

Wenn Sie einen Schnittstellentyp angeben, versucht der Manager, die Schnittstelle in einen konkreten Typ aufzulösen. Wenn die Typzuordnung vom Benutzer angegeben wird, verwendet diese Methode die vom Benutzer angegebene Zuordnung, um den Typ aufzulösen (noch nicht unterstützt). Wenn die Typzuordnung vom Benutzer nicht angegeben wird, wählt diese Methode die Standardimplementierung für die angegebene Schnittstelle aus. Wenn der angegebene Schnittstellentyp keine Standardimplementierung aufweist oder eine vom Benutzer angegebene Zuordnung für den Typ nicht angegeben ist oder der Typ ungültig ist, löst diese Methode ArgumentException aus.

Parameter

tx
ITransaction

Transaktion, der dieser Vorgang zugeordnet werden soll.

name
String

Der Name von IReliableState. Dieser Name muss in diesem IReliableStateManager typübergreifend IReliableState eindeutig sein, einschließlich nicht verwandter Typen.

Gibt zurück

Task<T>

Aufgabe, die den asynchronen Vorgang darstellt. Das Vorgangsergebnis ist der zuverlässige Zustand instance.

Ausnahmen

tx ist NULL oder name null.

Ein instance des Typs T kann nicht erstellt werden, oder die vorhandene IReliableState instance ist nicht vom Typ T.

Der Vorgang konnte innerhalb des Standardtimeouts nicht abgeschlossen werden.

Wird ausgelöst, wenn der IReliableStateManager nicht in Primaryist.

Die Transaktion wurde intern vom System fehlerhaft gemacht. Wiederholen des Vorgangs für eine neue Transaktion

Wird ausgelöst, wenn ein Methodenaufruf für den aktuellen Zustand des Objekts ungültig ist. Beispiel: Die verwendete Transaktion ist bereits beendet: vom Benutzer zugesagt oder abgebrochen. Wenn diese Ausnahme ausgelöst wird, ist es sehr wahrscheinlich, dass im Dienstcode der Verwendung von Transaktionen ein Fehler vorliegt.

Gibt an, dass der Reliable State Manager geschlossen ist.

Hinweise

Dies ist ein atomarer Vorgang. Wenn ein IReliableState erstellt werden muss, wird es entweder abgeschlossen und erfolgreich zurückgegeben, oder es wird nicht erstellt. Wenn diese Methode eine Ausnahme auslöst, muss die Transaktion abgebrochen werden.

Gilt für:

GetOrAddAsync<T>(ITransaction, Uri)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen und gibt es zurück, wenn es noch nicht vorhanden ist.

public System.Threading.Tasks.Task<T> GetOrAddAsync<T> (Microsoft.ServiceFabric.Data.ITransaction tx, Uri name) where T : Microsoft.ServiceFabric.Data.IReliableState;
abstract member GetOrAddAsync : Microsoft.ServiceFabric.Data.ITransaction * Uri -> System.Threading.Tasks.Task<'T (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)> (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)
Public Function GetOrAddAsync(Of T As IReliableState) (tx As ITransaction, name As Uri) As Task(Of T)

Typparameter

T

Wenn Sie den IReliableState Typ angeben, können Sie entweder einen Klassentyp oder einen Schnittstellentyp anfordern.

Wenn Sie einen Klassentyp angeben, versucht das System, eine instance dieses Typs zurückzugeben. Wenn ein instance dieses Typs nicht instanziiert werden kann (z. B. abstrakte Klasse, kein geeigneter Konstruktor), wird eine ArgumentException ausgelöst.

Wenn Sie einen Schnittstellentyp angeben, versucht der Manager, die Schnittstelle in einen konkreten Typ aufzulösen. Wenn die Typzuordnung vom Benutzer angegeben wird, verwendet diese Methode die vom Benutzer angegebene Zuordnung, um den Typ aufzulösen (noch nicht unterstützt). Wenn die Typzuordnung nicht vom Benutzer angegeben wird, wählt diese Methode die Standardimplementierung für die angegebene Schnittstelle aus. Wenn der angegebene Schnittstellentyp keine Standardimplementierung aufweist oder eine vom Benutzer angegebene Zuordnung für den Typ nicht bereitgestellt wird oder der Typ ungültig ist, löst diese Methode ArgumentException aus.

Parameter

tx
ITransaction

Transaktion, der dieser Vorgang zugeordnet werden soll.

name
Uri

Der Name von IReliableState. Dieser Name muss in diesem IReliableStateManager typübergreifend IReliableState eindeutig sein, einschließlich nicht verwandter Typen.

Gibt zurück

Task<T>

Aufgabe, die den asynchronen Vorgang darstellt. Das Vorgangsergebnis ist der zuverlässige Zustand instance.

Ausnahmen

tx ist NULL oder name null.

Ein instance des Typs T kann nicht erstellt werden, oder die vorhandene IReliableState instance ist nicht vom Typ T.

Der Vorgang konnte innerhalb des Standardtimeouts nicht abgeschlossen werden.

Wird ausgelöst, wenn der IReliableStateManager nicht in Primaryist.

Die Transaktion wurde intern vom System fehlerhaft gemacht. Wiederholen des Vorgangs für eine neue Transaktion

Wird ausgelöst, wenn ein Methodenaufruf für den aktuellen Zustand des Objekts ungültig ist. Beispiel: Die verwendete Transaktion ist bereits beendet: vom Benutzer zugesagt oder abgebrochen. Wenn diese Ausnahme ausgelöst wird, ist es sehr wahrscheinlich, dass im Dienstcode der Verwendung von Transaktionen ein Fehler vorliegt.

Gibt an, dass der Reliable State Manager geschlossen ist.

Hinweise

Dies ist ein atomarer Vorgang. Wenn ein IReliableState erstellt werden muss, wird es entweder abgeschlossen und erfolgreich zurückgegeben, oder es wird nicht erstellt. Wenn diese Methode eine Ausnahme auslöst, muss die Transaktion abgebrochen werden.

Gilt für:

GetOrAddAsync<T>(String, TimeSpan)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen und gibt es zurück, wenn es noch nicht vorhanden ist.

public System.Threading.Tasks.Task<T> GetOrAddAsync<T> (string name, TimeSpan timeout) where T : Microsoft.ServiceFabric.Data.IReliableState;
abstract member GetOrAddAsync : string * TimeSpan -> System.Threading.Tasks.Task<'T (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)> (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)
Public Function GetOrAddAsync(Of T As IReliableState) (name As String, timeout As TimeSpan) As Task(Of T)

Typparameter

T

Wenn Sie den IReliableState Typ angeben, können Sie entweder einen Klassentyp oder einen Schnittstellentyp anfordern.

Wenn Sie einen Klassentyp angeben, versucht das System, eine instance dieses Typs zurückzugeben. Wenn ein instance dieses Typs nicht instanziiert werden kann (z. B. abstrakte Klasse, kein geeigneter Konstruktor), wird eine ArgumentException ausgelöst.

Wenn Sie einen Schnittstellentyp angeben, versucht der Manager, die Schnittstelle in einen konkreten Typ aufzulösen. Wenn die Typzuordnung vom Benutzer angegeben wird, verwendet diese Methode die vom Benutzer angegebene Zuordnung, um den Typ aufzulösen (noch nicht unterstützt). Wenn die Typzuordnung nicht vom Benutzer angegeben wird, wählt diese Methode die Standardimplementierung für die angegebene Schnittstelle aus. Wenn der angegebene Schnittstellentyp keine Standardimplementierung aufweist oder eine vom Benutzer angegebene Zuordnung für den Typ nicht bereitgestellt wird oder der Typ ungültig ist, löst diese Methode ArgumentException aus.

Parameter

name
String

Der Name von IReliableState. Dieser Name muss in diesem IReliableStateManager typübergreifend IReliableState eindeutig sein, einschließlich nicht verwandter Typen.

timeout
TimeSpan

Die Zeitspanne, die auf den Abschluss des Vorgangs gewartet werden muss, bevor eine TimeoutException ausgelöst wird. Wird hauptsächlich verwendet, um Deadlocks zu verhindern. Der Standardwert ist 4 Sekunden.

Gibt zurück

Task<T>

Aufgabe, die den asynchronen Vorgang darstellt. Das Vorgangsergebnis ist der zuverlässige Zustand instance.

Ausnahmen

name ist NULL.

Ein instance des Typs T kann nicht erstellt werden, oder die vorhandene IReliableState instance ist nicht vom Typ Toder timeout ist negativ.

Der Vorgang konnte innerhalb des angegebenen Timeouts nicht abgeschlossen werden.

Wird ausgelöst, wenn sich nicht IReliableStateManager in befindet Primary.

Gibt an, dass der Reliable State Manager geschlossen ist.

Der Vorgang wurde intern vom System fehlerhaft. Wiederholen Sie den Vorgang.

Hinweise

Dies ist ein atomischer Vorgang. Wenn ein IReliableState erstellt werden muss, wird er entweder abgeschlossen und erfolgreich zurückgegeben, oder es wird nicht erstellt.

Gilt für:

GetOrAddAsync<T>(Uri, TimeSpan)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen und gibt es zurück, wenn es noch nicht vorhanden ist.

public System.Threading.Tasks.Task<T> GetOrAddAsync<T> (Uri name, TimeSpan timeout) where T : Microsoft.ServiceFabric.Data.IReliableState;
abstract member GetOrAddAsync : Uri * TimeSpan -> System.Threading.Tasks.Task<'T (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)> (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)
Public Function GetOrAddAsync(Of T As IReliableState) (name As Uri, timeout As TimeSpan) As Task(Of T)

Typparameter

T

Wenn Sie den IReliableState Typ angeben, können Sie entweder einen Klassentyp oder einen Schnittstellentyp anfordern.

Wenn Sie einen Klassentyp angeben, versucht das System, eine instance dieses Typs zurückzugeben. Wenn ein instance dieses Typs nicht instanziiert werden kann (z. B. abstrakte Klasse, kein geeigneter Konstruktor), wird eine ArgumentException ausgelöst.

Wenn Sie einen Schnittstellentyp angeben, versucht der Manager, die Schnittstelle in einen konkreten Typ aufzulösen. Wenn die Typzuordnung vom Benutzer angegeben wird, verwendet diese Methode die vom Benutzer angegebene Zuordnung, um den Typ aufzulösen (noch nicht unterstützt). Wenn die Typzuordnung nicht vom Benutzer angegeben wird, wählt diese Methode die Standardimplementierung für die angegebene Schnittstelle aus. Wenn der angegebene Schnittstellentyp keine Standardimplementierung aufweist oder eine vom Benutzer angegebene Zuordnung für den Typ nicht bereitgestellt wird oder der Typ ungültig ist, löst diese Methode ArgumentException aus.

Parameter

name
Uri

Der Name von IReliableState. Dieser Name muss in diesem IReliableStateManager typübergreifend IReliableState eindeutig sein, einschließlich nicht verwandter Typen.

timeout
TimeSpan

Die Zeitspanne, die auf den Abschluss des Vorgangs gewartet werden muss, bevor eine TimeoutException ausgelöst wird. Wird hauptsächlich verwendet, um Deadlocks zu verhindern. Der Standardwert ist 4 Sekunden.

Gibt zurück

Task<T>

Aufgabe, die den asynchronen Vorgang darstellt. Das Vorgangsergebnis ist der zuverlässige Zustand instance.

Ausnahmen

name ist NULL.

Ein instance des Typs T kann nicht erstellt werden, oder die vorhandene IReliableState instance ist nicht vom Typ Toder timeout ist negativ.

Der Vorgang konnte innerhalb des angegebenen Timeouts nicht abgeschlossen werden.

Wird ausgelöst, wenn sich nicht IReliableStateManager in befindet Primary.

Gibt an, dass der Reliable State Manager geschlossen ist.

Der Vorgang wurde intern vom System fehlerhaft. Wiederholen Sie den Vorgang.

Hinweise

Dies ist ein atomischer Vorgang. Wenn ein IReliableState erstellt werden muss, wird er entweder abgeschlossen und erfolgreich zurückgegeben, oder es wird nicht erstellt.

Gilt für:

GetOrAddAsync<T>(ITransaction, String, TimeSpan)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen und gibt es zurück, wenn es noch nicht vorhanden ist.

public System.Threading.Tasks.Task<T> GetOrAddAsync<T> (Microsoft.ServiceFabric.Data.ITransaction tx, string name, TimeSpan timeout) where T : Microsoft.ServiceFabric.Data.IReliableState;
abstract member GetOrAddAsync : Microsoft.ServiceFabric.Data.ITransaction * string * TimeSpan -> System.Threading.Tasks.Task<'T (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)> (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)
Public Function GetOrAddAsync(Of T As IReliableState) (tx As ITransaction, name As String, timeout As TimeSpan) As Task(Of T)

Typparameter

T

Wenn Sie den IReliableState Typ angeben, können Sie entweder einen Klassentyp oder einen Schnittstellentyp anfordern.

Wenn Sie einen Klassentyp angeben, versucht das System, eine instance dieses Typs zurückzugeben. Wenn ein instance dieses Typs nicht instanziiert werden kann (z. B. abstrakte Klasse, kein geeigneter Konstruktor), wird eine ArgumentException ausgelöst.

Wenn Sie einen Schnittstellentyp angeben, versucht der Manager, die Schnittstelle in einen konkreten Typ aufzulösen. Wenn die Typzuordnung vom Benutzer angegeben wird, verwendet diese Methode die vom Benutzer angegebene Zuordnung, um den Typ aufzulösen (noch nicht unterstützt). Wenn die Typzuordnung nicht vom Benutzer angegeben wird, wählt diese Methode die Standardimplementierung für die angegebene Schnittstelle aus. Wenn der angegebene Schnittstellentyp keine Standardimplementierung aufweist oder eine vom Benutzer angegebene Zuordnung für den Typ nicht bereitgestellt wird oder der Typ ungültig ist, löst diese Methode ArgumentException aus.

Parameter

tx
ITransaction

Transaktion, der dieser Vorgang zugeordnet werden soll.

name
String

Der Name von IReliableState. Dieser Name muss in diesem IReliableStateManager typübergreifend IReliableState eindeutig sein, einschließlich nicht verwandter Typen.

timeout
TimeSpan

Die Zeitspanne, die auf den Abschluss des Vorgangs gewartet werden muss, bevor eine TimeoutException ausgelöst wird. Wird hauptsächlich verwendet, um Deadlocks zu verhindern. Der Standardwert ist 4 Sekunden.

Gibt zurück

Task<T>

Aufgabe, die den asynchronen Vorgang darstellt. Das Vorgangsergebnis ist der zuverlässige Zustand instance.

Ausnahmen

tx ist NULL oder name null.

Ein instance des Typs T kann nicht erstellt werden, oder die vorhandene IReliableState instance ist nicht vom Typ Toder timeout ist negativ.

Der Vorgang konnte innerhalb des angegebenen Timeouts nicht abgeschlossen werden.

Wird ausgelöst, wenn sich nicht IReliableStateManager in befindet Primary.

Die Transaktion wurde intern vom System fehlerhaft gemacht. Wiederholen des Vorgangs für eine neue Transaktion

Wird ausgelöst, wenn ein Methodenaufruf für den aktuellen Zustand des Objekts ungültig ist. Beispiel: Die verwendete Transaktion wurde bereits beendet: Vom Benutzer committet oder abgebrochen. Wenn diese Ausnahme ausgelöst wird, ist es sehr wahrscheinlich, dass im Dienstcode der Verwendung von Transaktionen ein Fehler vorliegt.

Gibt an, dass der Reliable State Manager geschlossen ist.

Hinweise

Dies ist ein atomischer Vorgang. Wenn ein IReliableState erstellt werden muss, wird er entweder abgeschlossen und erfolgreich zurückgegeben, oder es wird nicht erstellt. Wenn diese Methode eine Ausnahme auslöst, muss die Transaktion abgebrochen werden.

Gilt für:

GetOrAddAsync<T>(ITransaction, Uri, TimeSpan)

Ruft eine IReliableState des angegebenen Typs T und mit dem angegebenen Namen ab, falls vorhanden, oder erstellt einen und gibt es zurück, wenn es noch nicht vorhanden ist.

public System.Threading.Tasks.Task<T> GetOrAddAsync<T> (Microsoft.ServiceFabric.Data.ITransaction tx, Uri name, TimeSpan timeout) where T : Microsoft.ServiceFabric.Data.IReliableState;
abstract member GetOrAddAsync : Microsoft.ServiceFabric.Data.ITransaction * Uri * TimeSpan -> System.Threading.Tasks.Task<'T (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)> (requires 'T :> Microsoft.ServiceFabric.Data.IReliableState)
Public Function GetOrAddAsync(Of T As IReliableState) (tx As ITransaction, name As Uri, timeout As TimeSpan) As Task(Of T)

Typparameter

T

Wenn Sie den IReliableState Typ angeben, können Sie entweder einen Klassentyp oder einen Schnittstellentyp anfordern.

Wenn Sie einen Klassentyp angeben, versucht das System, eine instance dieses Typs zurückzugeben. Wenn ein instance dieses Typs nicht instanziiert werden kann (z. B. abstrakte Klasse, kein geeigneter Konstruktor), wird eine ArgumentException ausgelöst.

Wenn Sie einen Schnittstellentyp angeben, versucht der Manager, die Schnittstelle in einen konkreten Typ aufzulösen. Wenn die Typzuordnung vom Benutzer angegeben wird, verwendet diese Methode die vom Benutzer angegebene Zuordnung, um den Typ aufzulösen (noch nicht unterstützt). Wenn die Typzuordnung nicht vom Benutzer angegeben wird, wählt diese Methode die Standardimplementierung für die angegebene Schnittstelle aus. Wenn der angegebene Schnittstellentyp keine Standardimplementierung aufweist oder eine vom Benutzer angegebene Zuordnung für den Typ nicht bereitgestellt wird oder der Typ ungültig ist, löst diese Methode ArgumentException aus.

Parameter

tx
ITransaction

Transaktion, der dieser Vorgang zugeordnet werden soll.

name
Uri

Der Name von IReliableState. Dieser Name muss in diesem IReliableStateManager typübergreifend IReliableState eindeutig sein, einschließlich nicht verwandter Typen.

timeout
TimeSpan

Die Zeitspanne, die auf den Abschluss des Vorgangs gewartet werden muss, bevor eine TimeoutException ausgelöst wird. Wird hauptsächlich verwendet, um Deadlocks zu verhindern. Der Standardwert ist 4 Sekunden.

Gibt zurück

Task<T>

Aufgabe, die den asynchronen Vorgang darstellt. Das Vorgangsergebnis ist der zuverlässige Zustand instance.

Ausnahmen

tx ist NULL oder name null.

Ein instance des Typs T kann nicht erstellt werden, oder die vorhandene IReliableState instance ist nicht vom Typ Toder timeout ist negativ.

Der Vorgang konnte innerhalb des angegebenen Timeouts nicht abgeschlossen werden.

Wird ausgelöst, wenn sich nicht IReliableStateManager in befindet Primary.

Die Transaktion wurde intern vom System fehlerhaft gemacht. Wiederholen des Vorgangs für eine neue Transaktion

Wird ausgelöst, wenn ein Methodenaufruf für den aktuellen Zustand des Objekts ungültig ist. Beispiel: Die verwendete Transaktion wurde bereits beendet: Vom Benutzer committet oder abgebrochen. Wenn diese Ausnahme ausgelöst wird, ist es sehr wahrscheinlich, dass im Dienstcode der Verwendung von Transaktionen ein Fehler vorliegt.

Gibt an, dass der Reliable State Manager geschlossen ist.

Hinweise

Dies ist ein atomischer Vorgang. Wenn ein IReliableState erstellt werden muss, wird er entweder abgeschlossen und erfolgreich zurückgegeben, oder es wird nicht erstellt. Wenn diese Methode eine Ausnahme auslöst, muss die Transaktion abgebrochen werden.

Gilt für: