API TERYT, a zapis, odczyt danych C#

0

Witam,
Chciałem się dowiedzieć, jak mogę zapisać dane bądź też odczytać z API w WCFie.
Dostałem się do serwisu GUS poprzez udostępniony serwis.
Jestem w stanie pobrać niektóre dane, gdy zwracane są jako obiekty poprzez foreacha.
Chciałem sformatować dane pobierane z serwisu np. w XMLu i je zapisać, bądź też bezpośrednio odczytać (np. wysłać na konsolę).
Dotej pory udało mi się wyprodukować coś takiego:

IFormatter formatter = new BinaryFormatter();
                Stream stream = new FileStream(@"D:\example.txt", FileMode.Create, FileAccess.Write);
                formatter.Serialize(stream, slownikRodzajowSimc);
                stream.Close();

Zapisuje dane (wstawia trochę krzaczków), ale nie jest to dobra forma, gdyż plik jest nieczytelny, przydałoby się utworzyć np XMLa.

Druga sprawa, jest taka, że potrzebuję pobrać, bądź odczytać plik *.zip z API

Classa zwracająca archiwum zip z API przedstawia się następująco:

[System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
    [System.Runtime.Serialization.DataContractAttribute(Name="PlikKatalog", Namespace="http://schemas.datacontract.org/2004/07/TerytUslugaWs1")]
    [System.SerializableAttribute()]
    public partial class PlikKatalog : object, System.Runtime.Serialization.IExtensibleDataObject, System.ComponentModel.INotifyPropertyChanged {
        
        [System.NonSerializedAttribute()]
        private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string nazwa_plikuField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string opisField;
        
        [System.Runtime.Serialization.OptionalFieldAttribute()]
        private string plik_zawartoscField;
        
        [global::System.ComponentModel.BrowsableAttribute(false)]
        public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
            get {
                return this.extensionDataField;
            }
            set {
                this.extensionDataField = value;
            }
        }
        
        [System.Runtime.Serialization.DataMemberAttribute()]
        public string nazwa_pliku {
            get {
                return this.nazwa_plikuField;
            }
            set {
                if ((object.ReferenceEquals(this.nazwa_plikuField, value) != true)) {
                    this.nazwa_plikuField = value;
                    this.RaisePropertyChanged("nazwa_pliku");
                }
            }
        }

Za wszelką pomoc bardzo dziękuję.

0

Tak sobie możesz zapisać tego zipa jeśli już tego potrzebujesz

        DateTime najnowszaDataAktualizacji = new DateTime(2018, 1, 2);
             var obj = gusInfo.PobierzKatalogSIMC(najnowszaDataAktualizacji);
            byte[] files = Convert.FromBase64String(obj.plik_zawartosc);
            File.WriteAllBytes("test.zip", files);
0

Dziękuję działa.
Mam pytanie odnośnie archiwów zip.
Czy da się otworzyć obj.plik_zawartosc, czyli plik skompresowany zipem w .Net 4.0?
Chodzi mi o wydobycie konkretnego pliku z archiwum i zapisanie go w bazie danych (plik w formacie *.html).

0

użyj sobie jakiejś biblioteki np. DotNetZip

1 użytkowników online, w tym zalogowanych: 0, gości: 1