インターフェイスクラスのメソッドが呼び出されるたびにログファイル(txt)を更新したいですか? ログを作成するすべてのメソッドにコードを記述する以外にこれを行う方法はありますか?毎回ログを作成するインターフェイスクラスのメソッドが呼び出されるとき
答えて
私はあなたがそれを達成するために、アスペクト指向プログラミングを使用しなければならないと思います。私はあなたが私は考えることができる つのオプション(代わりに、インターフェースの)クラスの意味だと思うhttp://www.sharpcrafters.com/aop.net
読む:
はがあらゆる方法で書き込みコードの行にあるをINotifyPropertyChangedの実装を
または
のAOPのフレームワークを記事のhttp://www.codeproject.com/KB/cs/AOP_Frameworks_Rating.aspxに採用する場合は、それがメジャールではない場合ap
もっと直接的な例を教えてもらえますか? –
INotifyPropertyChangedのリンク:http://msdn.microsoft.com/en-us/library/ms229614.aspx他のAOPフレームワークの場合、それぞれのサイトには良い例があります。 – Chandu
それはあなたの時間のためのおかげで多くのお役に立ちました –
私の30分です。ロギングコードをどこかに実装する必要があります。そのため、コードに対して別の抽象化を作成する必要があります。したがって、抽象クラスが必要です。おもう。これは非常に速く汚れています。
public interface IService<T>
{
List<T> GetAll();
bool Add(T obj);
}
、あなたはあなたができるあなたの実装に、あなたはあなたの具体的なクラス
public class EmployeeService : Service<Employee>
{
protected override List<Employee> GetAllWithLog()
{
return new List<Employee>() { new Employee() { Id = 0, Name = "test" } };
}
protected override bool AddWithLogging(Employee obj)
{
/// TODO : do add logic here
return true;
}
}
public class CompanyService : Service<Company>
{
protected override List<Company> GetAllWithLog()
{
return new List<Company>() { new Company() { Id = 0, Name = "test" } };
}
protected override bool AddWithLogging(Company obj)
{
/// TODO : do add logic here
return true;
}
}
public class Employee
{
public int Id {get;set;}
public string Name { get; set;}
}
public class Company
{
public int Id { get; set; }
public string Name { get; set; }
}
用として
public abstract class Service<T> : IService<T>
{
private void log()
{
/// TODO : do log routine here
}
public bool Add(T obj)
{
try
{
log();
return AddWithLogging(obj);
}
finally
{
log();
}
}
public List<T> GetAll()
{
try
{
log();
return GetAllWithLog();
}
finally
{
log();
}
}
protected abstract List<T> GetAllWithLog();
protected abstract bool AddWithLogging(T obj);
}
あなたのロギングルーチンを実装する必要があります抽象クラスが必要になりますちょうど..
static void Main(string[] args)
{
IService<Employee> employee = new EmployeeService();
List<Employee> employees = employee.GetAll();
foreach (var item in employees)
{
Console.WriteLine(item.Name);
}
IService<Company> company = new CompanyService();
List<Company> companies = company.GetAll();
foreach (var item in companies)
{
Console.WriteLine(item.Name);
}
Console.ReadLine();
}
これが役立つことを願っています!
マイケル..私は今これを試してみましょう.. !! –
- 1. ViewModelが毎回呼び出される
- 2. 完了メソッド毎回呼び出す方法ThreadPool.QueueUserWorkItemメソッドが
- 3. shared_ptrを作成するときにクラスデストラクターが2回呼び出される
- 4. PHPunitメソッドが1回呼び出されると予想され、実際に0回呼び出されます
- 5. MVC3 - 毎回2回呼び出されるコントローラのインデックスアクション
- 6. 毎回2回SKActionが呼び出されます(Swift 3)
- 7. MakeGenericType(...)を複数回呼び出すと、毎回新しい型が作成されますか?
- 8. 毎回jQuery ajaxCompleteが呼び出されますか?
- 9. Android SDK onCreateが毎回呼び出されます
- 10. ブロードキャストレシーバが毎回呼び出されます
- 11. ContactListner(Box2d)のEndContactが毎回LibGDXで呼び出されない
- 12. メソッドがJavaで呼び出された回数をカウントする
- 13. 毎回関数を呼び出すか、ローカル変数を作成する
- 14. 毎回クラスデコレータが呼び出されません
- 15. IAuthorizationFilterが毎回呼び出されない
- 16. クリックビュー内でメソッドを呼び出す複数回呼び出される
- 17. ボタンのクリックでVueメソッドが2回呼び出される
- 18. タブホストのタブonCreateメソッドが2回呼び出される
- 19. 頻繁に呼び出されるメソッドのログ練習
- 20. 毎回ブロックするDLLを呼び出さなければならないマルチスレッドアプリケーションを作成する方法
- 21. メソッドを呼び出すときにパラメータが変更される
- 22. アンドロイド:「onCreatedView」は、「setUserVisibleHint」が呼び出されないときに毎回呼びます。
- 23. 毎回異なるパラメータを持つメソッドを呼び出すボタンを動的に作成します。
- 24. Androidと同じメソッドが2回呼び出されました
- 25. Coffeescript:メソッドが呼び出されるクラスのインスタンスを動的に作成する
- 26. アプリケーションがバックグラウンドから呼び出されたときにメソッドを呼び出す
- 27. Netezza 7.2 UDFが2回呼び出されるインスタンス化メソッド
- 28. メソッドが1回だけ呼び出されるJquery
- 29. optionmenuが閉じるときに呼び出されるメソッド
- 30. 将来呼び出されるwhileループは、毎回呼び出されません
私は申し訳ありませんが、私はasp.net初心者ですいくつかのより直接的な例を提供することができますか? –