Ошибка служб WCF - ссылка на объект не установлена ​​для экземпляра объекта.Тип aspx.cs не распознан - PullRequest
0 голосов
/ 25 сентября 2019

Изображение ошибки Я получаю сообщение об ошибке без указания пути к файлу: «Ссылка на объект не установлена ​​на экземпляр объекта», а затем предупреждение времени выполнения ASP.NET, которое указывает на мой файл ascx.

Есть идеи, что мне не хватает для правильной компиляции?

PrintControl.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PrintControl.ascx.cs" Inherits="PrintControl" %>

PrintControl.ascx.cs

public partial class PromptControl : System.Web.UI.UserControl
{
    #region Private Member Variables
    private LabelFormat _labelFormat;     // Label format data object.
    #endregion

    #region Web Methods
    /// <summary>
    /// Called when the page is loaded.
    /// </summary>
    protected void Page_Load(object sender, EventArgs e)
    {
        CreateControls(_labelFormat);
    }
    #endregion

    #region Public Properties
    /// <summary>
    /// Sets the LabelFormat that will be used to get prompts.
    /// </summary>
    public LabelFormat LabelFormatObject
    {
        set
        {
            _labelFormat = value;
        }
    }
    #endregion

    #region Public Methods
    /// <summary>
    /// Gets the input prompt data and sets it on the given LabelFormat.
    /// </summary>
    /// <param name="format">The LabelFormat to set prompt data on.</param>
    public void UpdateFormatData(LabelFormat format)
    {
        foreach (Control control in _panelPrompts.Controls)
        {
            string promptName = "";

            if (control.ID != null)
            {
                promptName = control.ID.Replace('_', ' ');
                promptName = promptName.Substring(format.BaseName.Length);
            }
            if (control is TextBox)
            {
                TextBox textBox = control as TextBox;

                format.Prompts.SetPrompt(promptName, textBox.Text);
            }
            else if (control is ListControl)
            {
                ListControl listControl = control as ListControl;

                format.Prompts.SetPrompt(promptName, listControl.SelectedValue);
            }
        }
    }
    #endregion

    #region Support Methods
    /// <summary>
    /// Update controls on the page using the label format object data.
    /// </summary>
    /// <param name="labelFormat">Label format object.</param>
    void CreateControls(LabelFormat labelFormat)
    {
        if (labelFormat != null)
        {
            string xml = labelFormat.Prompts.LayoutXML;

            // Show the control if there is an xml layout.
            if (xml != "")
            {
                string xslPath = Server.MapPath("XSL\\Prompt.xsl");

                // Transform the prompt layout XML using an xsl transform which will create
                // a prompt using html and css that looks like the prompt does in BarTender.
                TextReader stringReader = new StringReader(xml);
                XmlReader xmlReader = XmlReader.Create(stringReader);

                XslCompiledTransform trans = new XslCompiledTransform();
                trans.Load(xslPath);

                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                XmlWriterSettings ws = trans.OutputSettings.Clone();
                XmlWriter xmlWriter = XmlWriter.Create(sb, ws);

                trans.Transform(xmlReader, xmlWriter);

                // Add the transformed html as a LiteralControl.
                string promptString = sb.ToString();

                // remove the namespace attribute 
                promptString = promptString.Replace("xmlns:asp=\"remove\"", "");

                Control promptControls = Page.ParseControl(promptString);
                while (promptControls.Controls.Count > 0)
                {
                    string controlID = promptControls.Controls[0].ID;
                    if (controlID != null)
                    {
                        promptControls.Controls[0].ID = labelFormat.BaseName.Replace(' ', '_') + controlID;
                    }
                    _panelPrompts.Controls.Add(promptControls.Controls[0]);
                }

                _panelPrompts.Visible = true;
            }
            else
            {
                _panelPrompts.Visible = false;
            }
        }
        else
        {
            _panelPrompts.Visible = false;
        }
    }
    #endregion
}

Все ошибки и предупреждения, генерируемые при сборке: 1. Ссылка на объект не установлена ​​на экземпляр объекта.2. ~ \ PromptControl.ascx: ошибка времени выполнения ASP.NET: для ссылки на объект не задан экземпляр объекта.
3. ~ \ PrintControl.ascx: ошибка времени выполнения ASP.NET: для ссылки на объект не установлен экземпляробъект.

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