Усовершенствование провайдера профилей - PullRequest
0 голосов
/ 24 октября 2008

Я хочу сериализовать и массив объектов для настраиваемого мастера, я пишу, но у меня возникают трудности с этим. Может кто-то помочь, это ошибка и фрагменты кода, которые я использую.

Ошибка, на мой взгляд, связана с невозможностью преобразования массива.

namespace Helios.Web.Framework
{
    /// <summary>
    /// Summary description for GlobalWizardMethods
    /// </summary>
    public class GlobalWizardsLibrary : Wizards
    {
        public GlobalWizardsLibrary() { }
        public WizardBase CreateWizardArray(Wizards wizards)
        {
            WizardBase[] b = new WizardBase[wizards.IListWizardBase.Count];
            for (int i = 0; i < b.Length; i++)
            {
                b[i] = (WizardBase)wizards.IListWizardBase[i];
            }
            return b;
        }
    }
}

-

        wizards = new Wizards();
        wizards.IListWizardBase = new List<WizardBase>();

        //if (wizards.WizardBase[0] == null)
        //{
            clientTakeOnWizardInfo = new ClientTakeOnWizardInfo();

            //Create any preset data to identify the client and wizard.
            CreatePresetWizardInfo();

            //Instantiate a new instance of the clientTakeOnWizard.organisationDetails.
            clientTakeOnWizardInfo.organisationDetails = new OrganisationDetails();

            //We update the Organisation Details with the new values from the form.
            clientTakeOnWizardInfo.organisationDetails.Guid = Profile.Wizards.WizardId.ToString();
            clientTakeOnWizardInfo.organisationDetails.OrganisationName = this.OrganisationName.Text;
            clientTakeOnWizardInfo.organisationDetails.PayrollSystem = this.PayrollSystem.SelectedValue;
            clientTakeOnWizardInfo.organisationDetails.Region = this.Region.SelectedValue;
            clientTakeOnWizardInfo.organisationDetails.RegistrationNumber = this.RegistrationNumber.Text;

            //Profile.Wizards.WizardData = clientTakeOnWizardInfo;

            Profile.Wizards.WizardStep = wizardClientTakeOnWizard.ActiveStepIndex;

            wizards.IListWizardBase.Add(clientTakeOnWizardInfo);
            GlobalWizardsLibrary s = new GlobalWizardsLibrary();
            s.CreateWizardArray(wizards);

Error 16 Cannot implicitly convert type 
    'Helios.Web.Framework.WizardBase[]' to 
    'Helios.Web.Framework.WizardBase'
    C:\...\GlobalWizardsLibrary.cs  34  20  
C:\...\HeliosWeb\

1 Ответ

1 голос
/ 24 октября 2008

Функция:

public WizardBase CreateWizardArray(Wizards wizards)

... возвращает локальную переменную b, которая объявлена ​​как WizardBase[], а не WizardBase.

Насколько я вижу, здесь не происходит никакой сериализации. Функция должна быть просто:

public WizardBase [] CreateWizardArray(Wizards wizards)

Я бы также отметил, что функция на самом деле не делает ничего ужасно полезного, она просто копирует элементы списка в массив (по ссылке) ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...