A Go Programming Notebook

Implementing interoperability, reflection, and mailing functionality in a .NET Framework application (11 percent)

  • Expose COM components to the .NET Framework and .NET Framework components to COM.

May include but is not limited to: Import a type library as an assembly; Create COM types in managed code; Compile an interop project; Deploy an interop application; Qualify .NET types for interoperation; Apply Interop attributes, such as the ComVisibleAttribute class; Package an assembly for COM; Deploy an application for COM access.

Call unmanaged DLL functions within a .NET Framework application, and control the marshalling of data in a .NET Framework application.

May include but is not limited to: Platform Invoke; Create a class to hold DLL functions; Create prototypes in managed code; Call a DLL function; Call a DLL function in special cases, such as passing structures and implementing callback functions; Create a new Exception class and map it to an HRESULT; Default marshalling behavior; Marshal data with Platform Invoke; Marshal data with COM Interop; MarshalAsAttribute class and Marshal class

Implement reflection functionality in a .NET Framework application, and create metadata, Microsoft intermediate language (MSIL), and a PE file by using the System.Reflection.Emit namespace.

May include but is not limited to: Assembly class; Assembly Attributes; Info classes; Binder class and BindingFlags; MethodBase class and MethodBody class; Builder classes

Send electronic mail to a Simple Mail Transfer Protocol (SMTP) server for delivery from a .NET Framework application.

May include but is not limited to: MailMessage class; MailAddress class and MailAddressCollection class; SmtpClient class, SmtpPermission class, and SmtpPermissionAttribute class; Attachment class, AttachmentBase class, and AttachmentCollection class; SmtpException class, SmtpFailedReceipientException class, and SmtpFailedReceipientsException class; SendCompletedEventHandler delegate; LinkedResource class and LinkedResourceCollection class; AlternateView class and AlternateViewCollection class