2010-12-06 4 views
0

今、私はコードを移動してライブラリを書き直しています。残念ながら、デザインは間違っているか未完成だったので、私のlibに静的メソッドを呼び出すたくさんの関数があります。私は毎回namespace.class.subclass.methodをやりたいとは思わない。私はmethod = namespace.class.subclass.methodを毎回使用しようとしましたが、静的メソッドとクラス/名前空間だけでは動作しません。C#でグローバル(または名前空間またはファイル)エイリアス/ヴァース/何かをハックすることはできますか?

私はこのファイルまたは名前空間のエイリアスをハックしたいと思います。ちょうど私がすべてをきれいにするまで。出来ますか?おそらくコンパイルフラグを渡すか、いくつかのオプションを設定します。その後

using namespace; 

の追加について、あなたはあなたのライブラリーを変更せずにclass.subclass.methodName();

を入力する必要がどのように

答えて

2

これらを静的メソッドからインスタンスメソッドに移行する予定の場合は、目的の最終結果を既存の静的メソッドにアダプタとして書き込んだ後、徐々にアダプタを使用して移行し、最後に実際のコードをアダプタクラス新しいコード使用にアダプターを作成し、古いコードに触れるよう、特殊なアダプタを使用するように変換したよう

var adapter = new StaticAdapter(); 
adapter.Foo(); 

として使用

public class StaticAdapter 
{ 

    public void Foo() 
    { 
     StaticNameSpace.StaticClass.StaticSubclass.Foo(); 
    } 
} 

。アダプターが既存のコードへの参照をすべて保持したら、アダプターの変更を開始して、コードを直接組み込んで古い静的クラスを廃止することをお勧めします。

+0

私はこの関数をいくつかのクラスで呼びます。私は多くのアダプタまたは静的なアダプタを持っています。 Find/Replaceを使用するように見えますが、読みやすさは低下し、このコードを書くのはうれしいことではありません。しかし、コードはすでに書かれているので、長い名前を入力する必要はありません。うまくいけば、コードは水曜日の夜に掃除することができます –

2

、私は、これは恋愛小説家であると信じています。

関連する問題