현재 A 라는 솔루션 안에 A1 프로젝트가 있습니다.
A1프로젝트에 B2라는 프로젝트를 참조시키고 A1상단에 using B2; 입력하고
B2 b2 = new B2(); 하니까 B2는 네임스페이스 이지만 형식처럼 사용한다는 에러가 뜨네요…
결론적으로
B2프로젝트 안에있는 Program.cs 소스 안에 public static void xxx(String[] args) { …} 를 호출하고싶습니다…
어떻게하면 될까요 조언좀 부탁드립니다.
현재 A 라는 솔루션 안에 A1 프로젝트가 있습니다.
A1프로젝트에 B2라는 프로젝트를 참조시키고 A1상단에 using B2; 입력하고
B2 b2 = new B2(); 하니까 B2는 네임스페이스 이지만 형식처럼 사용한다는 에러가 뜨네요…
결론적으로
B2프로젝트 안에있는 Program.cs 소스 안에 public static void xxx(String[] args) { …} 를 호출하고싶습니다…
어떻게하면 될까요 조언좀 부탁드립니다.
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!");
}
}
}
internal
을 public
으로 변경 한 후 해당 프로젝트를 참조하고 있다면 다음처럼 호출하실 수 있습니다.
(물론 Main 메소드도 public이어야 합니다)
B2.Program.Main(...);
답변 감사합니다…
B2.Program.Main(…);
저 괄호안에 … 은 어떻게 적어야하나요?..
B2.에있는 MAIN은 이렇습니다.
public static void Main(string[] args)
{
START_EXAMPLE(args)
}
…은 string[] 을 전달하시면 됩니다. 목적이 실행 시 매개변수를 처리하기 위함이라면 그 문자열을 그대로 전달하시면 됩니다.