0
私はsystem.io名前空間に私の側面を追加しようとしていますが、私はすでにトリックをしなかった多くのソリューションを検索しますが、基本的には例外を処理し、System.IO名前空間からFileクラスのログをいくつか行います。クラスの最上部に[MyAspect]を追加するのと同じように。PostSharp AspectをSystem.IO名前空間に追加しますか?
方法はありますか?
私はsystem.io名前空間に私の側面を追加しようとしていますが、私はすでにトリックをしなかった多くのソリューションを検索しますが、基本的には例外を処理し、System.IO名前空間からFileクラスのログをいくつか行います。クラスの最上部に[MyAspect]を追加するのと同じように。PostSharp AspectをSystem.IO名前空間に追加しますか?
方法はありますか?
さんはこのように側面を考えてみましょう:
[PSerializable]
public class MyAspect : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionArgs args)
{
}
}
あなたはMyAspect
を適用することで、プロジェクトから呼び出された任意の第三アセンブリにこの側面を適用することができます:あなたは、このアセンブリ属性を指定すると
[assembly: MyAspect(AttributeTargetAssemblies = "mscorlib", AttributeTargetTypes = "System.IO.*")]
その後、PostSharpを飾りますプロジェクトからメソッドへのすべての呼び出しはSystem.IO
名前空間mscorlib
アセンブリMyAspect
にあります。
あなたの答えをありがとう、私はこの数日前に試しました。できます!どのように私はWHOLEシステムの名前空間に影響を与えることができますが、コンソールクラスを除外する知っていますか? –
私はAttributeExclude = trueを使用し、AttributePriorityを使用してそれを行う方法を見つけましたが、私の側面が自分自身または何かに追加されているような、まだstackoverflow例外が残っています。 –