Hallo,
ich will in meinem Programm alle namen der Sub-Directories auslesen und zurückgeben
message HelloReply
{
repeated string Directrories = 1;
}
aber bei mir ist Directories schreibgeschützt also es hat nur eine get funktion und keine
set und wenn ich wie im Beispiel
repeated string Directrories = 1 [packed=true];
verwende mag protoc es nicht compilieren es gib mir den ExitCode 1 zurück.
Kann mir bitte wer helfen wie ich ein String Array in gRPC mache bzw. Protobuf
LG BierDav
Trifft eine Programmiererin ihre Freundin und die Freundin fragt: "Mit welchen Typen hängst du so in letzter Zeit rum?" Die Programmiererin antwortet: „integers, booleans und strings“
Du solltest Schnittstellen stets erweiterbar designen; und das ist Dein Konstrukt nicht.
Es macht wenig Sinn das Directory als String zu repräsentieren.
Wieso verwendest Du nicht etwas alá
message DirectoryEnumerationReply
{
repeated Directory directrories = 1;
}
message Directory {
string name = 1;
}
Damit kannst Du das Directory auch stets erweitern mit weiteren Eigenschaften.
Davon abgesehen dürfte doch packed
auf String gar nicht funkionieren; packed geht ja nur auf numerische Werte IIRC.
Sicher, dass das Beispiel hier string verwendet? Kann ich kaum glauben...zeig mal bitte das Beispiel.
Aber das kannst Du sicher der Doku entnehmen. Und schau Dir in der Doku gleich die empfehlene Schreibweise an...
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Nein im Beispiel ist es mit einem int32 und irgendwie ist dann Directrories noch immer Schreibgeschützt:
DirectoryInfo info = new DirectoryInfo(request.Path);
List<directory> dirs = new List<directory>();
foreach(DirectoryInfo dir in info.GetDirectories())
{
dirs.Add(new directory { Name = dir.Name });
}
var resault =Task.FromResult(new DirectoryEnumerationReply { Directrories = dirs });
,aber trotzdem danke.
LG BierDav
Trifft eine Programmiererin ihre Freundin und die Freundin fragt: "Mit welchen Typen hängst du so in letzter Zeit rum?" Die Programmiererin antwortet: „integers, booleans und strings“
Ich hab leider keine Ahnung, worauf sich Dein "Schreibgeschützt" bezieht....
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hab's gerade gefunden. Directories ist zwar Schreibgeschützt aber man kann trotzdem Items hinzufügen. Aber man muss das Reply schon vorher deklariert haben wie hier:
var reply = new DirectoryEnumerationReply();
foreach(DirectoryInfo dir in info.GetDirectories())
{
reply.Directrories.Add(new directory { Name = dir.Name });
}
var resault =Task.FromResult(reply);
LG BierDav
Trifft eine Programmiererin ihre Freundin und die Freundin fragt: "Mit welchen Typen hängst du so in letzter Zeit rum?" Die Programmiererin antwortet: „integers, booleans und strings“
Für die Administration.
Ihr könnt dieses Thema schließen.
Meine Frage wurde besser als gedacht beantwortet. 😄
LG BierDav
Trifft eine Programmiererin ihre Freundin und die Freundin fragt: "Mit welchen Typen hängst du so in letzter Zeit rum?" Die Programmiererin antwortet: „integers, booleans und strings“