c\#이상 이 없 는 상태 에서 현재 호출 스 택 의 해결 방법 을 봅 니 다.
[PostProviderExtension]
public class HasImageErrorCheckerPostExtension : IPostProviderExtension
{
public void BindEvents(PostProviderBase postProvider)
{
postProvider.Added += new PostChanged(postProvider_Added);
}
void postProvider_Added(Model.PostInfo post)
{
try
{
StackFrame[] stacks = new StackTrace().GetFrames();
if (post.Content.IndexOf("IMG") > -1 && post.HasImage == false)
{
StringBuilder sb = new StringBuilder();
sb.AppendLine(" ");
sb.AppendLine("stack is:");
sb.Append(ToString(stacks));
sb.Append("content=");
sb.AppendLine(post.Content);
sb.Append("HasImage=");
sb.AppendLine(UserPostContentProcessor.HasImage(post.Content).ToString());
sb.Append("createUserID=");
sb.AppendLine(post.CreateUserID.ToString());
sb.AppendLine(string.Format("LoginUser={0},Level={1}",PageBase.GetLoginUser().ID,PageBase.GetLoginUser().LevelNo));
TextLogWriter.NamedInstance("\\log\\HasImageErrorCheckerPostExtension\\").Write(sb.ToString());
}
}
catch (Exception ex)
{
TextLogWriter.NamedInstance("\\log\\HasImageErrorCheckerPostExtension\\").Write(ex);
}
}
private string ToString(StackFrame[] stacks)
{
string result = string.Empty;
foreach (StackFrame stack in stacks)
{
result += string.Format("{0} {1} {2} {3}\r
", stack.GetFileName(),
stack.GetFileLineNumber(),
stack.GetFileColumnNumber(),
stack.GetMethod().ToString());
}
return result;
}
}
위의 클래스 HasImageErrorCheckerPostExtension 은 IPostProvider Extension 에서 계승 되 고 PostProvider Extension 속성 수식 이 있 으 며 시스템 은 자동 으로 이 를 호출 하여 게시 물 을 올 릴 때 이 바 인 딩 된 이 벤트 를 촉발 합 니 다.여기 서 핵심 코드 는 new StackTrace()입 니 다.GetFrames()는 이 방법 을 통 해 현재 프로그램 이 실 행 될 때의 스 택 정 보 를 얻 을 수 있 습 니 다.Release 모드 에서 호출 할 수 있 는 방법 명 은 Debug 모드 에서 구체 적 인 파일 줄 번호,열 번 호 를 얻 을 수 있 습 니 다.이 방법 은 디 버 깅 에서 문 제 를 재현 할 수 없 을 때 문 제 를 찾 는 선택 방안 이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C#Task를 사용하여 비동기식 작업을 수행하는 방법라인이 완성된 후에 이 라인을 다시 시작할 수 없습니다.반대로 조인(Join)만 결합할 수 있습니다 (프로세스가 현재 라인을 막습니다). 임무는 조합할 수 있는 것이다. 연장을 사용하여 그것들을 한데 연결시키는 것이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.