나는 스레드 동기화를위한 클래스를 만들었고, 모든 함수, 클래스 등에 코드를 삽입하지 않고 메소드, 클래스, 속성 등에 적용하고 싶다. 이것은해야 할 현재 구현의 예이다 :함수를 감싸는 속성?
// [LockingClassAttribute(LockingClassAttribute.WriteBlock)]
// Not Declared But Added Since Attribute Is Applied On A Method
public class WhatIWantExample
{
//LockingClass locker; Included In The Attribute
[LockingClassAttribute(LockingClassAttribute.WriteBlock)]public int function()
{
if (condition)
return 0;
}
}
예 3 :
public class NotWhatIWantExample
{
LockingClass locker;
public int function()
{
locker.EnterWriteBlock();
if (condition)
{
locker.LeaveWriteBlock();
return 0;
}
locker.LeaveWriteBlock();
return 1;
}
}
다음 내가 예 2
가능하면 수행 할 작업의 두 가지 예입니다
[LockingClassAttribute(LockingClassAttribute.ReadWriteBlock)]
public class WhatIWantExample
{
//LockingClass locker; Included In The Attribute
//Function Would Override LockingClassAttribute.ReadWriteBlock
[LockingClassAttribute(LockingClassAttribute.WriteBlock)]public int function()
{
if (condition)
return 0;
return 1;
}
//Would Inherit [LockingClassAttribute(LockingClassAttribute.ReadWriteBlock)]
public int function2()
{
if (condition)
return 0;
return 1;
}
}
이 작업을 수행 할 수 있습니까?
그래서 Visual Studio 용 PostSharp 확장 프로그램이 이것을 허용합니까? – user3141117
@ user3141117 - 확장 프로그램을 사용하지 않았으므로 확실히 말할 수는 없습니다. – Sean