Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / WinForms / Managed / System / WinForms / ThreadExceptionDialog.cs / 1 / ThreadExceptionDialog.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Windows.Forms {
using System.Threading;
using System.Runtime.Remoting;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System;
using System.Text;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Runtime.InteropServices;
using System.Globalization;
///
///
///
///
/// Implements a dialog box that is displayed when an unhandled exception occurs in
/// a thread.
///
///
[
ComVisible(true),
ClassInterface(ClassInterfaceType.AutoDispatch),
SecurityPermission(SecurityAction.InheritanceDemand, Flags = SecurityPermissionFlag.UnmanagedCode),
SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode),
UIPermission(SecurityAction.Assert, Window=UIPermissionWindow.AllWindows)]
public class ThreadExceptionDialog : Form {
private const int MAXWIDTH = 440;
private const int MAXHEIGHT = 325;
// private const int IDI_ERROR = 32513;
private PictureBox pictureBox = new PictureBox();
private Label message = new Label();
private Button continueButton = new Button();
private Button quitButton = new Button();
private Button detailsButton = new Button();
private Button helpButton = new Button();
private TextBox details = new TextBox();
private Bitmap expandImage = null;
private Bitmap collapseImage = null;
private bool detailsVisible = false;
///
///
///
/// Initializes a new instance of the class.
///
///
///
public ThreadExceptionDialog(Exception t) {
string messageRes;
string messageText;
Button[] buttons;
bool detailAnchor = false;
WarningException w = t as WarningException;
if (w != null) {
messageRes = SR.ExDlgWarningText;
messageText = w.Message;
if (w.HelpUrl == null) {
buttons = new Button[] {continueButton};
}
else {
buttons = new Button[] {continueButton, helpButton};
}
}
else {
messageText = t.Message;
detailAnchor = true;
if (Application.AllowQuit) {
if (t is SecurityException) {
messageRes = "ExDlgSecurityErrorText";
}
else {
messageRes = "ExDlgErrorText";
}
buttons = new Button[] {detailsButton, continueButton, quitButton};
}
else {
if (t is SecurityException) {
messageRes = "ExDlgSecurityContinueErrorText";
}
else {
messageRes = "ExDlgContinueErrorText";
}
buttons = new Button[] {detailsButton, continueButton};
}
}
if (messageText.Length == 0) {
messageText = t.GetType().Name;
}
if (t is SecurityException) {
messageText = SR.GetString(messageRes, t.GetType().Name, Trim(messageText));
}
else {
messageText = SR.GetString(messageRes, Trim(messageText));
}
StringBuilder detailsTextBuilder = new StringBuilder();
string newline = "\r\n";
string separator = SR.GetString(SR.ExDlgMsgSeperator);
string sectionseparator = SR.GetString(SR.ExDlgMsgSectionSeperator);
if (Application.CustomThreadExceptionHandlerAttached) {
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgHeaderNonSwitchable));
}
else {
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgHeaderSwitchable));
}
detailsTextBuilder.Append(string.Format(CultureInfo.CurrentCulture, sectionseparator, SR.GetString(SR.ExDlgMsgExceptionSection)));
detailsTextBuilder.Append(t.ToString());
detailsTextBuilder.Append(newline);
detailsTextBuilder.Append(newline);
detailsTextBuilder.Append(string.Format(CultureInfo.CurrentCulture, sectionseparator, SR.GetString(SR.ExDlgMsgLoadedAssembliesSection)));
new FileIOPermission(PermissionState.Unrestricted).Assert();
try {
foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) {
AssemblyName name = asm.GetName();
string fileVer = SR.GetString(SR.NotAvailable);
try {
// bug 113573 -- if there's a path with an escaped value in it
// like c:\temp\foo%2fbar, the AssemblyName call will unescape it to
// c:\temp\foo\bar, which is wrong, and this will fail. It doesn't look like the
// assembly name class handles this properly -- even the "CodeBase" property is un-escaped
// so we can't circumvent this.
//
if (name.EscapedCodeBase != null && name.EscapedCodeBase.Length > 0) {
Uri codeBase = new Uri(name.EscapedCodeBase);
if (codeBase.Scheme == "file") {
fileVer = FileVersionInfo.GetVersionInfo(NativeMethods.GetLocalPath(name.EscapedCodeBase)).FileVersion;
}
}
}
catch(System.IO.FileNotFoundException){
}
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgLoadedAssembliesEntry, name.Name, name.Version, fileVer, name.EscapedCodeBase));
detailsTextBuilder.Append(separator);
}
}
finally {
CodeAccessPermission.RevertAssert();
}
detailsTextBuilder.Append(string.Format(CultureInfo.CurrentCulture, sectionseparator, SR.GetString(SR.ExDlgMsgJITDebuggingSection)));
if (Application.CustomThreadExceptionHandlerAttached) {
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgFooterNonSwitchable));
}
else {
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgFooterSwitchable));
}
detailsTextBuilder.Append(newline);
detailsTextBuilder.Append(newline);
string detailsText = detailsTextBuilder.ToString();
Graphics g = message.CreateGraphicsInternal();
Size textSize = Size.Ceiling(g.MeasureString(messageText, Font, MAXWIDTH - 84));
textSize.Height += 4;
g.Dispose();
if (textSize.Width < 180) textSize.Width = 180;
if (textSize.Height > MAXHEIGHT) textSize.Height = MAXHEIGHT;
int width = textSize.Width + 84;
int buttonTop = Math.Max(textSize.Height, 40) + 26;
// SECREVIEW : We must get a hold of the parent to get at it's text
// : to make this dialog look like the parent.
//
IntSecurity.GetParent.Assert();
try {
Form activeForm = Form.ActiveForm;
if (activeForm == null || activeForm.Text.Length == 0) {
Text = SR.GetString(SR.ExDlgCaption);
}
else {
Text = SR.GetString(SR.ExDlgCaption2, activeForm.Text);
}
}
finally {
CodeAccessPermission.RevertAssert();
}
AcceptButton = continueButton;
CancelButton = continueButton;
FormBorderStyle = FormBorderStyle.FixedDialog;
MaximizeBox = false;
MinimizeBox = false;
StartPosition = FormStartPosition.CenterScreen;
Icon = null;
ClientSize = new Size(width, buttonTop + 31);
TopMost = true;
pictureBox.Location = new Point(0, 0);
pictureBox.Size = new Size(64, 64);
pictureBox.SizeMode = PictureBoxSizeMode.CenterImage;
if (t is SecurityException) {
pictureBox.Image = SystemIcons.Information.ToBitmap();
}
else {
pictureBox.Image = SystemIcons.Error.ToBitmap();
}
Controls.Add(pictureBox);
message.SetBounds(64,
8 + (40 - Math.Min(textSize.Height, 40)) / 2,
textSize.Width, textSize.Height);
message.Text = messageText;
Controls.Add(message);
continueButton.Text = SR.GetString(SR.ExDlgContinue);
continueButton.FlatStyle = FlatStyle.Standard;
continueButton.DialogResult = DialogResult.Cancel;
quitButton.Text = SR.GetString(SR.ExDlgQuit);
quitButton.FlatStyle = FlatStyle.Standard;
quitButton.DialogResult = DialogResult.Abort;
helpButton.Text = SR.GetString(SR.ExDlgHelp);
helpButton.FlatStyle = FlatStyle.Standard;
helpButton.DialogResult = DialogResult.Yes;
detailsButton.Text = SR.GetString(SR.ExDlgShowDetails);
detailsButton.FlatStyle = FlatStyle.Standard;
detailsButton.Click += new EventHandler(DetailsClick);
Button b = null;
int startIndex = 0;
if (detailAnchor) {
b = detailsButton;
expandImage = new Bitmap(this.GetType(), "down.bmp");
expandImage.MakeTransparent();
collapseImage = new Bitmap(this.GetType(), "up.bmp");
collapseImage.MakeTransparent();
b.SetBounds( 8, buttonTop, 100, 23 );
b.Image = expandImage;
b.ImageAlign = ContentAlignment.MiddleLeft;
Controls.Add(b);
startIndex = 1;
}
int buttonLeft = (width - 8 - ((buttons.Length - startIndex) * 105 - 5));
for (int i = startIndex; i < buttons.Length; i++) {
b = buttons[i];
b.SetBounds(buttonLeft, buttonTop, 100, 23);
Controls.Add(b);
buttonLeft += 105;
}
details.Text = detailsText;
details.ScrollBars = ScrollBars.Both;
details.Multiline = true;
details.ReadOnly = true;
details.WordWrap = false;
details.TabStop = false;
details.AcceptsReturn = false;
details.SetBounds(8, buttonTop + 31, width - 16,154);
Controls.Add(details);
}
///
///
///
/// Hide the property
///
///
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override bool AutoSize
{
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")]
get
{
return base.AutoSize;
}
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")]
set
{
base.AutoSize = value;
}
}
///
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
new public event EventHandler AutoSizeChanged
{
add
{
base.AutoSizeChanged += value;
}
remove
{
base.AutoSizeChanged -= value;
}
}
///
///
/// Called when the details button is clicked.
///
private void DetailsClick(object sender, EventArgs eventargs) {
int delta = details.Height + 8;
if (detailsVisible) delta = -delta;
Height = Height + delta;
detailsVisible = !detailsVisible;
detailsButton.Image = detailsVisible ? collapseImage : expandImage;
}
private static string Trim(string s) {
if (s == null) return s;
int i = s.Length;
while (i > 0 && s[i - 1] == '.') i--;
return s.Substring(0, i);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------------
/*
*/
namespace System.Windows.Forms {
using System.Threading;
using System.Runtime.Remoting;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
using System;
using System.Text;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Runtime.InteropServices;
using System.Globalization;
///
///
///
///
/// Implements a dialog box that is displayed when an unhandled exception occurs in
/// a thread.
///
///
[
ComVisible(true),
ClassInterface(ClassInterfaceType.AutoDispatch),
SecurityPermission(SecurityAction.InheritanceDemand, Flags = SecurityPermissionFlag.UnmanagedCode),
SecurityPermission(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.UnmanagedCode),
UIPermission(SecurityAction.Assert, Window=UIPermissionWindow.AllWindows)]
public class ThreadExceptionDialog : Form {
private const int MAXWIDTH = 440;
private const int MAXHEIGHT = 325;
// private const int IDI_ERROR = 32513;
private PictureBox pictureBox = new PictureBox();
private Label message = new Label();
private Button continueButton = new Button();
private Button quitButton = new Button();
private Button detailsButton = new Button();
private Button helpButton = new Button();
private TextBox details = new TextBox();
private Bitmap expandImage = null;
private Bitmap collapseImage = null;
private bool detailsVisible = false;
///
///
///
/// Initializes a new instance of the class.
///
///
///
public ThreadExceptionDialog(Exception t) {
string messageRes;
string messageText;
Button[] buttons;
bool detailAnchor = false;
WarningException w = t as WarningException;
if (w != null) {
messageRes = SR.ExDlgWarningText;
messageText = w.Message;
if (w.HelpUrl == null) {
buttons = new Button[] {continueButton};
}
else {
buttons = new Button[] {continueButton, helpButton};
}
}
else {
messageText = t.Message;
detailAnchor = true;
if (Application.AllowQuit) {
if (t is SecurityException) {
messageRes = "ExDlgSecurityErrorText";
}
else {
messageRes = "ExDlgErrorText";
}
buttons = new Button[] {detailsButton, continueButton, quitButton};
}
else {
if (t is SecurityException) {
messageRes = "ExDlgSecurityContinueErrorText";
}
else {
messageRes = "ExDlgContinueErrorText";
}
buttons = new Button[] {detailsButton, continueButton};
}
}
if (messageText.Length == 0) {
messageText = t.GetType().Name;
}
if (t is SecurityException) {
messageText = SR.GetString(messageRes, t.GetType().Name, Trim(messageText));
}
else {
messageText = SR.GetString(messageRes, Trim(messageText));
}
StringBuilder detailsTextBuilder = new StringBuilder();
string newline = "\r\n";
string separator = SR.GetString(SR.ExDlgMsgSeperator);
string sectionseparator = SR.GetString(SR.ExDlgMsgSectionSeperator);
if (Application.CustomThreadExceptionHandlerAttached) {
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgHeaderNonSwitchable));
}
else {
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgHeaderSwitchable));
}
detailsTextBuilder.Append(string.Format(CultureInfo.CurrentCulture, sectionseparator, SR.GetString(SR.ExDlgMsgExceptionSection)));
detailsTextBuilder.Append(t.ToString());
detailsTextBuilder.Append(newline);
detailsTextBuilder.Append(newline);
detailsTextBuilder.Append(string.Format(CultureInfo.CurrentCulture, sectionseparator, SR.GetString(SR.ExDlgMsgLoadedAssembliesSection)));
new FileIOPermission(PermissionState.Unrestricted).Assert();
try {
foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) {
AssemblyName name = asm.GetName();
string fileVer = SR.GetString(SR.NotAvailable);
try {
// bug 113573 -- if there's a path with an escaped value in it
// like c:\temp\foo%2fbar, the AssemblyName call will unescape it to
// c:\temp\foo\bar, which is wrong, and this will fail. It doesn't look like the
// assembly name class handles this properly -- even the "CodeBase" property is un-escaped
// so we can't circumvent this.
//
if (name.EscapedCodeBase != null && name.EscapedCodeBase.Length > 0) {
Uri codeBase = new Uri(name.EscapedCodeBase);
if (codeBase.Scheme == "file") {
fileVer = FileVersionInfo.GetVersionInfo(NativeMethods.GetLocalPath(name.EscapedCodeBase)).FileVersion;
}
}
}
catch(System.IO.FileNotFoundException){
}
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgLoadedAssembliesEntry, name.Name, name.Version, fileVer, name.EscapedCodeBase));
detailsTextBuilder.Append(separator);
}
}
finally {
CodeAccessPermission.RevertAssert();
}
detailsTextBuilder.Append(string.Format(CultureInfo.CurrentCulture, sectionseparator, SR.GetString(SR.ExDlgMsgJITDebuggingSection)));
if (Application.CustomThreadExceptionHandlerAttached) {
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgFooterNonSwitchable));
}
else {
detailsTextBuilder.Append(SR.GetString(SR.ExDlgMsgFooterSwitchable));
}
detailsTextBuilder.Append(newline);
detailsTextBuilder.Append(newline);
string detailsText = detailsTextBuilder.ToString();
Graphics g = message.CreateGraphicsInternal();
Size textSize = Size.Ceiling(g.MeasureString(messageText, Font, MAXWIDTH - 84));
textSize.Height += 4;
g.Dispose();
if (textSize.Width < 180) textSize.Width = 180;
if (textSize.Height > MAXHEIGHT) textSize.Height = MAXHEIGHT;
int width = textSize.Width + 84;
int buttonTop = Math.Max(textSize.Height, 40) + 26;
// SECREVIEW : We must get a hold of the parent to get at it's text
// : to make this dialog look like the parent.
//
IntSecurity.GetParent.Assert();
try {
Form activeForm = Form.ActiveForm;
if (activeForm == null || activeForm.Text.Length == 0) {
Text = SR.GetString(SR.ExDlgCaption);
}
else {
Text = SR.GetString(SR.ExDlgCaption2, activeForm.Text);
}
}
finally {
CodeAccessPermission.RevertAssert();
}
AcceptButton = continueButton;
CancelButton = continueButton;
FormBorderStyle = FormBorderStyle.FixedDialog;
MaximizeBox = false;
MinimizeBox = false;
StartPosition = FormStartPosition.CenterScreen;
Icon = null;
ClientSize = new Size(width, buttonTop + 31);
TopMost = true;
pictureBox.Location = new Point(0, 0);
pictureBox.Size = new Size(64, 64);
pictureBox.SizeMode = PictureBoxSizeMode.CenterImage;
if (t is SecurityException) {
pictureBox.Image = SystemIcons.Information.ToBitmap();
}
else {
pictureBox.Image = SystemIcons.Error.ToBitmap();
}
Controls.Add(pictureBox);
message.SetBounds(64,
8 + (40 - Math.Min(textSize.Height, 40)) / 2,
textSize.Width, textSize.Height);
message.Text = messageText;
Controls.Add(message);
continueButton.Text = SR.GetString(SR.ExDlgContinue);
continueButton.FlatStyle = FlatStyle.Standard;
continueButton.DialogResult = DialogResult.Cancel;
quitButton.Text = SR.GetString(SR.ExDlgQuit);
quitButton.FlatStyle = FlatStyle.Standard;
quitButton.DialogResult = DialogResult.Abort;
helpButton.Text = SR.GetString(SR.ExDlgHelp);
helpButton.FlatStyle = FlatStyle.Standard;
helpButton.DialogResult = DialogResult.Yes;
detailsButton.Text = SR.GetString(SR.ExDlgShowDetails);
detailsButton.FlatStyle = FlatStyle.Standard;
detailsButton.Click += new EventHandler(DetailsClick);
Button b = null;
int startIndex = 0;
if (detailAnchor) {
b = detailsButton;
expandImage = new Bitmap(this.GetType(), "down.bmp");
expandImage.MakeTransparent();
collapseImage = new Bitmap(this.GetType(), "up.bmp");
collapseImage.MakeTransparent();
b.SetBounds( 8, buttonTop, 100, 23 );
b.Image = expandImage;
b.ImageAlign = ContentAlignment.MiddleLeft;
Controls.Add(b);
startIndex = 1;
}
int buttonLeft = (width - 8 - ((buttons.Length - startIndex) * 105 - 5));
for (int i = startIndex; i < buttons.Length; i++) {
b = buttons[i];
b.SetBounds(buttonLeft, buttonTop, 100, 23);
Controls.Add(b);
buttonLeft += 105;
}
details.Text = detailsText;
details.ScrollBars = ScrollBars.Both;
details.Multiline = true;
details.ReadOnly = true;
details.WordWrap = false;
details.TabStop = false;
details.AcceptsReturn = false;
details.SetBounds(8, buttonTop + 31, width - 16,154);
Controls.Add(details);
}
///
///
///
/// Hide the property
///
///
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public override bool AutoSize
{
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")]
get
{
return base.AutoSize;
}
[SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")]
set
{
base.AutoSize = value;
}
}
///
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
new public event EventHandler AutoSizeChanged
{
add
{
base.AutoSizeChanged += value;
}
remove
{
base.AutoSizeChanged -= value;
}
}
///
///
/// Called when the details button is clicked.
///
private void DetailsClick(object sender, EventArgs eventargs) {
int delta = details.Height + 8;
if (detailsVisible) delta = -delta;
Height = Height + delta;
detailsVisible = !detailsVisible;
detailsButton.Image = detailsVisible ? collapseImage : expandImage;
}
private static string Trim(string s) {
if (s == null) return s;
int i = s.Length;
while (i > 0 && s[i - 1] == '.') i--;
return s.Substring(0, i);
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ListControlDataBindingHandler.cs
- QilFactory.cs
- BindingExpressionUncommonField.cs
- ExpandableObjectConverter.cs
- ISAPIRuntime.cs
- ImmutableAssemblyCacheEntry.cs
- HttpContext.cs
- BrushValueSerializer.cs
- DataContractSerializerSection.cs
- PeerNameRecordCollection.cs
- IResourceProvider.cs
- VersionPair.cs
- CombinedGeometry.cs
- InputBinding.cs
- MediaSystem.cs
- Currency.cs
- MailSettingsSection.cs
- MarkerProperties.cs
- Int16AnimationUsingKeyFrames.cs
- DrawingGroup.cs
- ADConnectionHelper.cs
- LogicalExpr.cs
- ResourceContainer.cs
- SkewTransform.cs
- HtmlElementErrorEventArgs.cs
- RootProfilePropertySettingsCollection.cs
- NegatedCellConstant.cs
- CharacterString.cs
- ConnectionOrientedTransportChannelFactory.cs
- PropertyNames.cs
- PeerApplication.cs
- LoginDesignerUtil.cs
- Geometry.cs
- WebPartVerb.cs
- ExtensionDataObject.cs
- PropertyIDSet.cs
- TextTreePropertyUndoUnit.cs
- Bidi.cs
- TextPenaltyModule.cs
- AsmxEndpointPickerExtension.cs
- BaseCodeDomTreeGenerator.cs
- ListViewInsertedEventArgs.cs
- IOThreadScheduler.cs
- WebEvents.cs
- PersistenceProviderBehavior.cs
- TCPClient.cs
- NTAccount.cs
- BitmapFrameDecode.cs
- _LocalDataStoreMgr.cs
- SqlCommand.cs
- RecognizerBase.cs
- AddInBase.cs
- ViewgenGatekeeper.cs
- PersonalizationProviderHelper.cs
- PartitionerQueryOperator.cs
- QuadraticBezierSegment.cs
- Graphics.cs
- ToolStripManager.cs
- RuleSetDialog.cs
- ListChangedEventArgs.cs
- DependencyObject.cs
- NotFiniteNumberException.cs
- CompressStream.cs
- TypeResolvingOptions.cs
- LinkArea.cs
- Publisher.cs
- StdValidatorsAndConverters.cs
- FacetValues.cs
- DataGridAddNewRow.cs
- Bidi.cs
- DSACryptoServiceProvider.cs
- RuntimeWrappedException.cs
- QueryableDataSourceEditData.cs
- SqlOuterApplyReducer.cs
- HTTPNotFoundHandler.cs
- SymLanguageType.cs
- X509Certificate.cs
- XmlExpressionDumper.cs
- AdPostCacheSubstitution.cs
- UserThread.cs
- DataRecordInfo.cs
- SqlPersonalizationProvider.cs
- SystemIcmpV4Statistics.cs
- XmlAttributeCollection.cs
- NamespaceDisplay.xaml.cs
- CssClassPropertyAttribute.cs
- WebServiceParameterData.cs
- MatrixTransform.cs
- TraceInternal.cs
- InvokeMethodActivityDesigner.cs
- WindowsHyperlink.cs
- IPipelineRuntime.cs
- HandlerBase.cs
- EditorPartCollection.cs
- OrthographicCamera.cs
- LogicalExpressionEditor.cs
- securitycriticaldataformultiplegetandset.cs
- WebServiceHost.cs
- CollectionViewSource.cs
- DataRecordObjectView.cs