Allegro webapi - doShowItemInfoExt i c#

0

Witam,
Od ostatniego czasu staram się coś napisać w c# z użyciem biblioteki allegro. Niestety utknąłem na momencie pobierania szczegółów przedmiotu za pomocą funkcji doShowItemInfoExt .

Oto mój kod:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AllegroManager
{
    public partial class preferencesBox : Form
    {
        webapi.AllegroWebApiService allegro;

        webapi.ItemCatList[] itemcatpath;
        webapi.AttribStruct[] itematriblist;
        webapi.ItemImageList[] itemimglist;
        webapi.PostageStruct[] itempostopt;

        public preferencesBox(string ssid, long pid)
        {
            InitializeComponent();

            allegro.doShowItemInfoExt(ssid, pid, 1, 1, 1, 1, out itemcatpath, out itemimglist, out itematriblist, out itempostopt);    
                   
        }
    }
}

w ssid znajduję się numer sesji a w pid numer produktu.

Niestety pojawia się błąd "Object reference not set to an instance of an object. " przy linijce allegro.doShowItemInfoExt(ssid, pid, 1, 1, 1, 1, out itemcatpath, out itemimglist, out itematriblist, out itempostopt);
i niestety nie wiem jak rozwiązać ten problem. Rozumiem że nie zarezerwowałem pamięci wskaźnikom (chyba), jednak moje próby rozwiązania tego, póki co spełzły na niczym.

Bardzo proszę o pomoc.

0

Problem jest w tym że tworzysz obiekty i ich nie inicjalizujesz podając null'a jako out.
Zainicjalizuj zmiennne domyślnymi wartościami a dopiero na nich operuj.

0

Dziękuję za odpowiedź rozumiem, że chodzi o to (?)
np:

        webapi.ItemCatList[] itemcatpath = new webapi.ItemCatList[10];
        webapi.AttribStruct[] itematriblist = new webapi.AttribStruct[20];
        webapi.ItemImageList[] itemimglist = new webapi.ItemImageList[10];
        webapi.PostageStruct[] itempostopt = new webapi.PostageStruct[10];

Proszę o wybaczenie jeśli popełniłem właśnie straszną głupotę, ale cały czas się uczę.
Niestety błąd wyświetla się nadal. Więc pewnie robię coś źle.
Jeśli jest taka możliwość proszę o jeszcze jakąś wskazówkę

0

Na moje oko - nie zainicjalizowałeś obiektu "allegro".

A tak przy okazji - fakt, że ta funkcja wymaga na WEJŚCIU istniejących tabel wynika z wymogów formalnych języka, a nie z zapotrzebowania biblioteki (na WEJŚCIU do niczego one nie są potrzebne). Równie dobrze możesz więc je stworzyć z rozmiarem 0:

        webapi.ItemCatList[] itemcatpath = new webapi.ItemCatList[0];
        webapi.AttribStruct[] itematriblist = new webapi.AttribStruct[0];
        webapi.ItemImageList[] itemimglist = new webapi.ItemImageList[0];
        webapi.PostageStruct[] itempostopt = new webapi.PostageStruct[0];

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