C# Express: Using the Visual Basic MyServices Namespace
Visual Basic programmers have been keeping something from us: My Classes. The My Classes are some jolly useful methods that wrap various .NET Frameworks code, and make it quick and easy to do some otherwise tedious stuff.
However, rejoice, for we C# programmers can use them too. Here’s how:
- From the Solution Explorer, right click on the References node, and select Add Reference. When the dialog appears, scroll down and select Microsoft.VisualBasic.dll.
- In the Using section at the top of your program, add Using Microsoft.VisualBasic.MyServices.
- That’s it.
Now you can make use of the rather nifty My Classes that Visual Basic programmers have been raving about.
(Aside: Do Visual Basic programmers rave? I should ask the person responsible for creating their personas – the internal model we use at Microsoft for describing our customers. Haha! You should see what we think about you, gentle C# programmer. Don’t worry, I’m kidding. We respect you and think you’re awesome. After all, we’re all C# programmers too. Thinking about it, maybe our C# persona is how we all vicariously live our lives – so it’s up to you! Don’t let us down! You do go snowboarding and ride a motorbike, right? And eat pizza? And have a girlfriend/boyfriend? And you weigh about 180lbs, telephone your mother once a week, and cry at sad movies? Do you count in binary on your fingers when you sit on the bus, hoping the person sitting opposite will notice and think you're cool? [By the way: they won't and wouldn't] Good. Suffice to say we have a lot of information about you. I’d say more, but already the MS SpyBot is hovering in the corridor outside my office…)
Anyway, here’s some sample C# code that uses these classes. You’ll notice I didn’t use the My Classes for FileSystem stuff. As C#’ies, we don’t get to use that class, but we can use System.IO.FileSystem, which is also in the VisualBasic.dll.
class Program
{
static void Main(string[] args)
{
// Play a sound.
Microsoft.VisualBasic.MyServices.MyAudio myaudio = new MyAudio();
// The case of the filename and path must be correct.
myaudio.Play(@"c:\WINDOWS\Media\chimes.wav");
// Display displays on the current time and date.
Microsoft.VisualBasic.MyServices.MyClock myclock = new MyClock();
Console.WriteLine("Current day of the week " + myclock.LocalTime.DayOfWeek);
// Display details about the computer running this code.
Microsoft.VisualBasic.MyServices.MyComputer mycomputer = new MyComputer();
Console.WriteLine("Computer name: " + mycomputer.Name);
Console.WriteLine("Computer connected to network: " + mycomputer.Network.IsAvailable.ToString());
// Duplicate a directory
// Thanks Stephen Toub
System.IO.FileSystem.CopyDirectory(@"C:\original_directory", @"c:\copy_of_original_directory");
}
}
Comments
- Anonymous
August 04, 2004
so, C# isn't going to include something like My class? how about edit and continue for debugging? - Anonymous
August 04, 2004
I can tell you that this version of C# Express - beta 1 - doesn't have Edit and Continue, or the super-duper-easy-to-use MyClass support that VB does. I obviously can't comment on what might be included in the full, released product. But I'll certainly pass on your request for features to the developers: I know you aren't alone. - Anonymous
August 05, 2004
hope - Anonymous
August 05, 2004
my world