I've been working on a program that needs to enumerate all the Control Panel applets in Windows, and ideally get the proper display name (rather than the .cpl filename). You can do this for a specific applet by using the DllImport Attribute to access the CPlApplet function that every applet implements: My problem is that I needed to call this function for all applets (including non-Microsoft ones). .NET allows you to do dynamic P/Invoke code, but the only post I found in Google was from someone who was unable to get it to work. After using ildasm.exe to study what IL was generated by the static version, I noticed that the once major difference was that the dynamic version lacked the "preservesig" statement. The way to add this in is to use a custom attribute - you can't do it via a parameter for any of the methods. The final version in VB.NET is based on the sample code from http://www.thecodeproject.com/csharp/dynamicinvokedll.asp
Rellie's raison d’être Narelle has started her own blog!
SourceForge.net: Project Info - NUnitAsp Code Generator: "A tool to generate source code test classes for NUnitAsp from web pages (via a URL) or by analysing .aspx pages" The source code is now in its own SF project!
Last Thursday I was out visiting the e-business team at Mawson Lakes campus. I was showing them how to use NUnit and NUnitAsp for automated unit testing. As I was setting up a test for NUnitAsp, I noticed how repetitive it was to:
- Browse the web page
- Find the control
- View the source to see the control's id.
- Add a variable declaration to the test class.
- Add a variable assignment/initialise to the SetUp method for the variable
- Back to step 2