実行時にインターフェイスをコンパイルして「ハードコードされた」名前空間に追加できるかどうか、私は現在混乱しています。
説明するコード:
using System;
using System.Runtime.CompilerServices;
using EngineCore;
namespace EngineCore
{
public interface iMobilePhones
{
string phoneNumber {get; set;}
string phoneRingtone {get; set;}
void CallNumber(string phoneNumber);
}
}
これはランタイム コンパイルされたインターフェイスです。実行時に EngineCore 名前空間に追加したいと考えています。
コンパイルは期待どおりに機能しているようで、ご覧のとおり、EngineCore 名前空間を使用してコンパイルしました。
using System;
using System.Runtime.CompilerServices;
using EngineCore;
namespace EngineCore
{
public class EQMobilePhoneCheap : iMobilePhones
{
//iMobilePhones interface members
private string PhoneNumber;
private string PhoneRingtone = "Default";
public string phoneNumber
{
get
{
return PhoneNumber;
}
set
{
PhoneNumber = value;
}
}
public string phoneRingtone
{
get
{
return PhoneRingtone;
}
set
{
PhoneRingtone = value;
}
}
//iMobilePhones interface functions
public void CallNumber(string phoneNumber)
{
}
}
}
これは、2 番目のランタイム コンパイル コードです。ご覧のとおり、以前にコンパイルした iMobilePhones インターフェイスを使用しようとしています。
しかし、iMobilePhones は EngineCore のインターフェースではないため、コンパイルは失敗します。
実際の質問:
それで、以前にコンパイルされたインターフェイス iMobilePhones を EngineCore 名前空間に「登録」する方法があるかどうか疑問に思っていますか?
読んでいただきありがとうございます。どんな提案でも大歓迎です。