Modern applications increasingly use plain text to store and share data, especially in XML and SOAP formats. However, binary data cannot be represented directly in plain text, so one popular method is to convert binary to Base64 format.
Given a string ‘s’, which of the following expressions is faster?
1. String.IsNullOrEmpty( s )
2. s == null || s.Length == 0
If you need a collection of objects accessed by a key, and the key is one of the object’s properties, then you should use the KeyedCollection class instead of Dictionary. For example, you would use a KeyedCollection to store Employee objects accessed by the employee’s ID property.
When building your first .NET web service, you may be in for a rude awakening when you discover the concept of “partial trust.” Your previously bullet-proof code will suddenly fail in a flurry of exceptions thrown by seemingly innocuous commands such as reading files or accessing the Registry. This article provides a brief overview of Code Access Security and describes how to modify and test your code to work in a partial trust environment.
Read the rest of this entry »
Creating C# objects at run-time is easy. Just call the Activator.CreateInstance method.
For example, to create the same type of object as the current object using its default constructor:
Activator.CreateInstance( this.GetType() );
Sometimes you need to be able to convert between multiple data types. One solution is to create a “universal type converter,” which is an object that implicitly executes all of the desired type conversions.
Reflection is a handy mechanism in .NET that enables you to obtain class information, get and set properties, and invoke methods entirely at run-time. Reflection can also provide information about the object and method that called a particular method. This can be useful for debug and trace purposes.
Reading the contents of a web page is easy in C# with the System.Net.WebClient class:
When constructing a C# Object, it’s important to understand the order in which the object’s fields and constructors are initialized:
When a program calls a synchronous function, the program halts and waits for the function to finish executing. When a program calls an asynchronous function, the program does not wait and continues to execute while the asynchronous function executes in the background.
By default, C# methods are synchronous. External functions that can take a long time to execute–such as interprocess communications (IPC) and database queries–are typically asynchronous. However, there may be instances where you need to make a synchronous function asynchronous and vice-versa.