c# 솔루션 프로젝트 추가 후 함수 실행 질문드립니다.

현재 A 라는 솔루션 안에 A1 프로젝트가 있습니다.
A1프로젝트에 B2라는 프로젝트를 참조시키고 A1상단에 using B2; 입력하고

B2 b2 = new B2(); 하니까 B2는 네임스페이스 이지만 형식처럼 사용한다는 에러가 뜨네요…

결론적으로
B2프로젝트 안에있는 Program.cs 소스 안에 public static void xxx(String[] args) { …} 를 호출하고싶습니다…
어떻게하면 될까요 조언좀 부탁드립니다.

2개의 좋아요
B2 b2 = new B2();

를 했을 때 관련 오류가 발생한 이유는 B2는 네임스페이스이기 떄문입니다. 네임스페이스는 일종의 주소로 인스턴스화 할 수 없습니다.

반면, 원하시는 목적은 B2 프로젝트 안에 있는 Program.cs 소스 안의 정적 메소드를 호출 하는 건데요,

만약에 다음처럼 Program 클래스가 internal로 되어 있으면 외부에서 접근할 수 가 없습니다.

using System;

namespace B2
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

internalpublic으로 변경 한 후 해당 프로젝트를 참조하고 있다면 다음처럼 호출하실 수 있습니다.
(물론 Main 메소드도 public이어야 합니다)

B2.Program.Main(...);
4개의 좋아요

답변 감사합니다…
B2.Program.Main(…);
저 괄호안에 … 은 어떻게 적어야하나요?..

B2.에있는 MAIN은 이렇습니다.

public static void Main(string[] args)
{
    START_EXAMPLE(args)
}
2개의 좋아요

…은 string[] 을 전달하시면 됩니다. 목적이 실행 시 매개변수를 처리하기 위함이라면 그 문자열을 그대로 전달하시면 됩니다.

3개의 좋아요