teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

修正

2019/06/17 01:58

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -10,18 +10,18 @@
10
10
  using System;
11
11
  using System.Reflection;
12
12
 
13
- namespace ConsoleApp2
13
+ namespace ConsoleApp3
14
14
  {
15
15
  class Program
16
16
  {
17
17
  static void Main(string[] args)
18
18
  {
19
- Assembly
20
- .Load("ConsoleApp1")
19
+ var assembly = Assembly.Load("ConsoleApp1");
21
- .EntryPoint
22
- .Invoke(null, new object[] { new string[] { assembly.Location } });
20
+ assembly.EntryPoint.Invoke(null, new object[] { new string[] { assembly.Location } });
23
21
  Console.ReadKey();
24
22
  }
25
23
  }
26
24
  }
27
- ```
25
+ ```
26
+
27
+ コードが間違っていたので修正しました。

1

追記

2019/06/17 01:57

投稿

Zuishin
Zuishin

スコア28675

answer CHANGED
@@ -1,3 +1,27 @@
1
1
  実行可能なアセンブリも参照できます。
2
2
  参照した上で Main メソッドを取得して呼んでみてください。
3
- プライベートなメンバーにアクセスするにはリフレクションが必要です。
3
+ プライベートなメンバーにアクセスするにはリフレクションが必要です。
4
+
5
+ # 追記
6
+
7
+ ConsoleApp1.exe を ConsoleApp2.exe と同じディレクトリに置き、次のコードを実行することで ConsoleApp1.exe の Main メソッドを呼び出せます。
8
+
9
+ ```C#
10
+ using System;
11
+ using System.Reflection;
12
+
13
+ namespace ConsoleApp2
14
+ {
15
+ class Program
16
+ {
17
+ static void Main(string[] args)
18
+ {
19
+ Assembly
20
+ .Load("ConsoleApp1")
21
+ .EntryPoint
22
+ .Invoke(null, new object[] { new string[] { assembly.Location } });
23
+ Console.ReadKey();
24
+ }
25
+ }
26
+ }
27
+ ```