Avatar billede hanzi_cool Nybegynder
30. august 2003 - 15:04 Der er 13 kommentarer

Is inaccessible due to its protection level

Jeg får denne fejl hver gang jeg prøver:

spirit2.LegoVPBClass asd = new LegoVPBClass()

Jeg har brugt Object Browser til at tjekke om LegoVPBClass var en public class, og det var den.


På forhånd tak for hjælpen,
Hanzi
Avatar billede quaser Nybegynder
30. august 2003 - 15:07 #1
Hvad med spirit2.LegoVPBClass, er den private?
Avatar billede quaser Nybegynder
30. august 2003 - 15:08 #2
Kan du prøve at komme med lidt mere kode?
Avatar billede z42cool Nybegynder
30. august 2003 - 15:10 #3
Er spirit2's LegoVPBClass property også public?
Avatar billede hanzi_cool Nybegynder
30. august 2003 - 15:18 #4
Så vidt jeg kan se i Object Browser er alt public... Men jeg kan se at selvom jeg kun skrive:
spirit2.LegoVPBClass asd = new spirit2.LegoVPBClass();

bliver fejlen:
'spirit2.LegoVPBClass.LegoVPBClass()' is inaccessible due to its protection level
Avatar billede quaser Nybegynder
30. august 2003 - 15:21 #5
Kan du ikke lige komme med noget kode, både for LegoVPBClass og den klasse som du kalder fra?
Avatar billede repsak Nybegynder
30. august 2003 - 15:31 #6
både constructoren og klassen skal være public
Avatar billede hanzi_cool Nybegynder
30. august 2003 - 16:22 #7
Hvordan kan jeg sørge for/tjekke om constructoren og klassen er public?


Her er min kode:

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using spirit2;


namespace mindstorm
{
    /// <summary>
    /// Summary description for Form3.
    /// </summary>
    public class Form3 : System.Windows.Forms.Form
    {
        private System.Windows.Forms.TextBox textBox1;
        private System.Windows.Forms.Button button1;
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.Container components = null;
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        ///
        [STAThread]
        static void Main()
        {
            Application.Run(new Form3());
        }

        public Form3()
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose( bool disposing )
        {
            if( disposing )
            {
                if(components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose( disposing );
        }

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.textBox1 = new System.Windows.Forms.TextBox();
            this.button1 = new System.Windows.Forms.Button();
            this.SuspendLayout();
            //
            // textBox1
            //
            this.textBox1.Location = new System.Drawing.Point(128, 72);
            this.textBox1.Name = "textBox1";
            this.textBox1.TabIndex = 0;
            this.textBox1.Text = "textBox1";
            //
            // button1
            //
            this.button1.Location = new System.Drawing.Point(240, 168);
            this.button1.Name = "button1";
            this.button1.TabIndex = 1;
            this.button1.Text = "button1";
            //
            // Form3
            //
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
            this.ClientSize = new System.Drawing.Size(544, 326);
            this.Controls.Add(this.button1);
            this.Controls.Add(this.textBox1);
            this.Name = "Form3";
            this.Text = "Form3";
            this.Load += new System.EventHandler(this.Form3_Load);
            this.ResumeLayout(false);

        }
        #endregion

        private void Form3_Load(object sender, System.EventArgs e)
        {
            spirit2.LegoVPBClass asd = new spirit2.LegoVPBClass();
        }
    }
}
Avatar billede quaser Nybegynder
30. august 2003 - 16:31 #8
og så den for LegoVPBClass
Avatar billede hanzi_cool Nybegynder
30. august 2003 - 16:38 #9
LegoVPBClass er ikke noget jeg har skrevet. Det er en COM er snkker med.
Avatar billede tuxic Nybegynder
30. august 2003 - 22:23 #10
Du forsøger at kalde default constructoren og den er tydeligvis ikke public selvom klassen selv er det. Måske findes der en Factory-metode du kan kalde i stedet? (Typisk en statisk metode på klassen selv der giver en instans tilbage)

Der er ikke nødvendigt at prefixe når du bruger using.
LegoVPBClass asd = new LegoVPBClass();
er altså fuldt tilstrækkeligt
Avatar billede hanzi_cool Nybegynder
31. august 2003 - 23:53 #11
Jeg fatter det stadig ikke... så jeg fandt en anden måde at gører det.

Men tak for hjælpen...
Avatar billede Slettet bruger
01. september 2003 - 08:39 #12
Det er ikke fordi du åbner din applikation fra et netværksdrev? Så kan du få samme fejl.
.net applikationer kan kun køre fra et lokalt drev.
Avatar billede tuxic Nybegynder
01. september 2003 - 22:42 #13
briancaos, det er nu ikke helt rigtigt. Men man skal justere CAS for at få winforms til at virke fra web'et eller intranet zone (~mappede netværksdrev)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester