csharpcodeproviderを使用して部分クラスをコンパイルします
-
27-10-2019 - |
質問
プロジェクトのフォルダーにファイルを構築するコードテンプレートがあり、部分クラスで定義されたプロパティを使用して、まだ実装する必要があるプロパティを決定します。例として:
public partial class Thingy : IThingy
{
public Foo Bar { get; set; }
}
public interface IThingy
{
Foo Bar { get; set; }
Baz Biz { get; set; }
}
そして、テンプレートは生成することになっています。
public partial class Thingy
{
Baz Biz { get; set; }
}
インターフェイスの期待を満たすためにテンプレートが残りの情報を生成し、したがってクラスを生成することさえ保証できます。クラス。インターフェイスがまったく実装されていることをプロバイダーに無視するように伝える方法はありますか?
編集: 私はこれをもう少し考えて、実際にソースを最初に文字列に読み取り、インターフェイス参照を削除し、コードの文字列をにスローするという形で回避策を考えました CompileAssemblyFromSource
それ以外の CompileAssemblyFromFile
, 、しかし、それは非常にKludgyを感じ、おそらくバグを導入するでしょう。考え?
解決
インターフェイスの実装宣言を削除するには、ソースを変更する必要があると思います。
所属していません StackOverflow