어셈블리 광산 (사용자 정의 인증을 사용)을 사용하는 aspx 웹 페이지가 있습니다. 파일에 무엇인가를 기록하기 위해 내 어셈블리의 MSIL 코드 (ILDASM/ILASM 도구로만)를 수정하고 싶습니다.MSIL 코드로 파일을 작성하는 방법
나는 나의 어셈블리의위한 인증 방법의 끝이를 추가하는 시도 :
IL_0034: ldstr "C:\\path_to_my_website\\log.txt"
IL_0039: newobj instance void [mscorlib]System.IO.StreamWriter::.ctor(string)
IL_003e: stloc.1
IL_003f: ldloc.1
IL_0040: ldstr "test"
IL_0045: callvirt instance void [mscorlib]System.IO.TextWriter::Write(string)
IL_004a: nop
IL_004b: ldloc.1
IL_004c: callvirt instance void [mscorlib]System.IO.TextWriter::Close()
IL_0051: nop
이 ILASM가 오류를 발견하지 않으며, CLR 런타임에 예외를 throw하지 않습니다,하지만 파일입니다 생성되거나 수정되지 않았습니다! :(
가 어떤 생각?
어셈블리 인 경우 실제 코드에 로깅을 추가하면 어떻습니까? –
MSIL 코드를 배우기 때문에 마지막 목적은 훨씬 까다 롭습니다. – Thomas
'Close()'전에'Flush()'를 호출 해 보았습니까? 일부 스트림은 닫을 때 플러시되지 않습니다. 약간 바보입니다. – thecoop