Brak metody main w widoku. Wzorzec MVP w C#

0

Cześć.
Jestem sobie w pracy i z nadmiaru czasu piszę sobie wzorzec MVP w Visual C#.
Ogólny zamysł to stworzenie 4 projektów i połączenie ich referencjami:

  • MVP.Application (projekt startujący)
  • MVP.Model (model zawierający interfejsy i klasy np. userModel.cs i IuserModel.cs)
  • MVP.Controller (tu będzie miało miejsce poniekąd łączenie widoku z model tzn. wyszukiwanie użytkownika, pobieranie, ustawiania itd.)
  • MVP.Vew (tu będą umieszczone WFP, UserControl itd.)

Mam niestety problem z kompilacją. Debuger wyrzuca błąd:

Error	1	Program 'C:\Documents and Settings\pwolak\my documents\visual studio 2010\Projects\MVP\VIEW\obj\x86\Debug\VIEW.exe' does not contain a static 'Main' method suitable for an entry point	VIEW

Powód to brak statycznej metody Main(). Chcę dodać, że w MVP.Application, mam Program.cs i Main'a. Mam podobny projekt ściągnięty z neta i tam nie ma funkcji Main w widoku ... a u mnie musi być.
Jak to jest zrobione?

Trochę kodu:
--Proram.cs w MVP

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using VIEW;

namespace MVP
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            mainView view = new mainView();
            view.Visible = true;
            view.Show();
        }
    }
}

--mainView.cs w VIEW

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 VIEW
{
    public partial class mainView : Form
    {
        public mainView()
        {
            InitializeComponent();
        }
    }
}

Dzięki.

0

Jeżeli ustawiłeś rodzaj projektu na Windows Application, to kompilator szuka funkcji startowej, czyli maina, którego nie masz. Musisz zmienić projekty jako biblioteki np., a jeden projekt ustawić jako windows application, który będzie głównym programem(w tym przypadku ten Twój program sterujący).

0

Tak właśnie zrobiłem.

  1. Najpierw utworzyłem Windows Forms Application, z niego wywaliłem jakiś tam domyślny widok a zostawiłem tylko Program.cs z Main
  2. Następnie dodałem Empty Project
  3. Do niego dodałem Add->New item->Windows Form

Wiesz co mam na myśli. Chce zrobić tylko widok i nie chce żeby on startował. Ja go ręcznie wywołam.

1

TYP/rodzajprojektu... wejdź w Properties tego Twojego View project, zakładka Application, pole Output type i zobacz co tam masz... z błędu wynika, że VIEW.exe to osobny program zupełnie i próbujesz go odpalić bez funkcji startowej, przez co Windows nie może go wywołać. Zmień to na biblioteke chociażby i tą bibliotekę musisz dołączyć do głównego projektu.

0

Fakt w Output było Console Application i zmieniłem go na Class Library. Błędu nie ma lecz program się uruchamia i szybko się wyłącza.

Form1 view = new Form1();
            view.Show();
0

Program masz na myśli całą aplikację, czy tylko okno Twojego projektu View ?

0

Pojawia się formanka z VIEW, po czym program się kończy i wyłącza.

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