.NET 2.0에서부터는 VB.NET에 유틸리티 성격에 해당하는 기능들을 모아서 "My"라는 네임스페이스 아래에 제공해 주고 있습니다.
"VB.NET"에서만 사용할 수 있는 걸까요?
물론, ".NET"이라는 단어가 붙었다는 것만으로도, 이미 그것은 VB.NET의 전유물이 아님을 쉽게 알아채실 수 있으실 겁니다.
당연히 C#에서도 관련 어셈블리 참조만으로도 해당 "My" 네임스페이스에 있는 기능들을 동일하게 사용할 수가 있습니다. 우선, 어떤 어셈블리가 필요한지는 MSDN 도움말을 통해서 알아낼 수 있습니다. 찾아보시면, Microsoft.VisualBasic.dll에서 모든 구현이 이루어져 있음을 알 수 있습니다. 한번 따라해 볼까요? ^^
1. Microsoft.VisualBasic.dll에 대해서 참조를 추가합니다.
2. 어떤 기능들을 사용할 수 있는지, 다음과 같이 Object Browser를 통해서 확인할 수 있습니다. VB.NET에서처럼 바로 "My"를 통해서 접근할 수 없다는 차이만 있을 뿐입니다.
3. using 문으로 관련 namespace를 추가합니다. 이때 다음과 같이 "My"로 해주시면 마치 VB.NET에서 사용했던 것과 동일하게 사용하는 기분을 낼 수 있습니다.
using System;
using My = Microsoft.VisualBasic;
4. 이제 자유롭게 My 네임스페이스에 포함된 기능들을 사용해 줍니다. 그동안 아쉬웠던 기능들이 My 네임스페이스에 풍부하게 구현되어져 있으므로, 반드시 시간을 내서 봐두시기 바랍니다.
class Program
{
static void Main(string[] args)
{
// 음악 파일 재생
My.Devices.Audio audio = new My.Devices.Audio();
audio.Play(@"C:\test.wma");
// 특정 폴더 하위의 모든 내용을 삭제
My.FileIO.FileSystem.DeleteDirectory(
@"D:\temp2\ConsoleApplication1\test",
My.FileIO.DeleteDirectoryOption.DeleteAllContents);
| Title |
| 11901 | 정성태 | 5/21/2019 | 27073 | 오류 유형: 538. msbuild 오류 - Could not find a part of the path '%LOCALAPPDATA%\Temp\2\.NETFramework,Version=v4.0.AssemblyAttributes.cs' | |
| 11900 | 정성태 | 5/18/2019 | 25794 | 오류 유형: 537. "sfc /scannow" 실행 중 시스템이 부팅되는 현상 | |
| 11899 | 정성태 | 5/17/2019 | 25761 | Linux: 9. Linux에서 윈도우의 OutputDebugString 대신 사용할 수 있는 syslog [1] | |
| 11898 | 정성태 | 5/16/2019 | 27159 | VC++: 130. C++ string의 c_str과 data 함수의 차이점 [3] | |
| 11897 | 정성태 | 5/16/2019 | 32744 | 오류 유형: 536. Visual Studio - "Developer Pack"을 설치했는데도 "대상 프레임워크" 목록에 나오지 않는 경우 [2] | |
| 11896 | 정성태 | 5/15/2019 | 30515 | 개발 환경 구성: 440. C#, C++ - double의 Infinity, NaN 표현 방식 | 1 |
| 11895 | 정성태 | 5/12/2019 | 26989 | .NET Framework: 832. ML.NET Model Builder - 회귀(Regression), 다중 분류(Multi-class classification) 예제 | 1 |
| 11894 | 정성태 | 5/10/2019 | 29164 | VS.NET IDE: 135. Visual Studio - ML.NET Model Builder 소개 [5] | |
| 11893 | 정성태 | 5/10/2019 | 24605 | 오류 유형: 535. C# 6.0 이상의 문법을 컴파일 시 오류가 발생한다면? | |
| 11892 | 정성태 | 5/10/2019 | 23790 | 웹: 38. HTTP Cookie의 expires 시간 형식(RFC7231) | |
| 11891 | 정성태 | 5/9/2019 | 27878 | .NET Framework: 831. (번역글) .NET Internals Cookbook Part 12 - Memory structure, attributes, handles | |
| 11890 | 정성태 | 5/8/2019 | 24454 | 개발 환경 구성: 439. "Visual Studio Enterprise is required to execute the test." 메시지와 관련된 코드 기록 | |
| 11889 | 정성태 | 5/8/2019 | 23135 | 개발 환경 구성: 438. mstest, QTAgent의 로그 파일 설정 방법 | |
| 11888 | 정성태 | 5/8/2019 | 42488 | .NET Framework: 830. C# - 비동기 호출을 취소하는 CancellationToken의 간단한 예제 코드 [1] | 1 |
| 11887 | 정성태 | 5/8/2019 | 28039 | .NET Framework: 829. C# - yield 문을 사용할 수 있는 메서드의 조건 | |
| 11886 | 정성태 | 5/7/2019 | 24733 | 오류 유형: 534. mstest.exe 실행 시 "Visual Studio Enterprise is required to execute the test." 오류 [2] | |
| 11885 | 정성태 | 5/7/2019 | 22729 | 오류 유형: 533. mstest.exe 실행 시 "File extension specified '.loadtest' is not a valid test extension." 오류 발생 | |
| 11884 | 정성태 | 5/5/2019 | 27172 | .NET Framework: 828. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 - 두 번째 이야기 | |
| 11883 | 정성태 | 5/3/2019 | 32863 | .NET Framework: 827. C# - 인터넷 시간 서버로부터 받은 시간을 윈도우에 적용하는 방법 | 1 |
| 11882 | 정성태 | 5/2/2019 | 29240 | .NET Framework: 826. (번역글) .NET Internals Cookbook Part 11 - Various C# riddles | 1 |
| 11881 | 정성태 | 4/28/2019 | 29514 | 오류 유형: 532. .NET Core 프로젝트로 마이그레이션 시 "CS0579 Duplicate 'System.Reflection.AssemblyCompanyAttribute' attribute" 오류 발생 | |
| 11880 | 정성태 | 4/25/2019 | 25649 | 오류 유형: 531. 이벤트 로그 오류 - Task Scheduling Error: m->NextScheduledSPRetry 1547, m->NextScheduledEvent 1547 | |
| 11879 | 정성태 | 4/24/2019 | 35255 | .NET Framework: 825. (번역글) .NET Internals Cookbook Part 10 - Threads, Tasks, asynchronous code and others | 2 |
| 11878 | 정성태 | 4/22/2019 | 29281 | .NET Framework: 824. (번역글) .NET Internals Cookbook Part 9 - Finalizers, queues, card tables and other GC stuff | 1 |
| 11877 | 정성태 | 4/22/2019 | 30079 | .NET Framework: 823. (번역글) .NET Internals Cookbook Part 8 - C# gotchas | 1 |
| 11876 | 정성태 | 4/21/2019 | 26141 | .NET Framework: 822. (번역글) .NET Internals Cookbook Part 7 - Word tearing, locking and others | 1 |