TypeReference.GetManagedType C# (CSharp) Method

GetManagedType() public method

public GetManagedType ( ) : string
return string
	public string GetManagedType ()
	{
		if (managed_type == null) {
			switch (Value) {
			case "int":
			case "bool":
			case "void":
			case "long":
			case "double":
				managed_type = Value;
				break;
			case "guint32":
			case "uint32_t":
				managed_type = "uint";
				break;
			case "gint32":
			case "int32_t":
				managed_type = "int";
				break;
			case "int64_t":
			case "gint64":
				managed_type = "long";
				break;
			case "uint64_t":
			case "guint64":
				managed_type = "ulong";
				break;
			case "ManagedStreamCallbacks*":
				IsRef = true;
				managed_type = "ManagedStreamCallbacks";
				break;
			case "MoonError*":
				IsOut = true;
				managed_type = "MoonError";
				break;
			case "gboolean":
				managed_type = "bool";
				break;
			case "Value*":
				if (IsReturnType) {
					managed_type = "IntPtr";
				} else {
					IsRef = true;
					managed_type = "Value";
				}
				break;
			case "MoonMessageBoxResult":
				managed_type = "MessageBoxResult";
				break;
			case "MoonMessageBoxButton":
				managed_type = "MessageBoxButton";
				break;
			case "MoonMessageBoxType":
				managed_type = "int";
				break;
			case "GetDefaultStyleCallback":
				managed_type = "Mono.GetDefaultStyleCallback";
				break;
			case "GetDefaultTemplateCallback":
				managed_type = "Mono.GetDefaultTemplateCallback";
				break;
			case "ConvertSetterValuesCallback":
				managed_type = "Mono.ConvertSetterValuesCallback";
				break;
			case "ConvertKeyframeValueCallback":
				managed_type = "Mono.ConvertKeyframeValueCallback";
				break;
			case "GetDefaultTemplateRootCallback":
				managed_type = "Mono.GetDefaultTemplateRootCallback";
				break;
			case "PropertyChangeHandler":
				managed_type = "Mono.UnmanagedPropertyChangeHandler";
				break;
			case "EasingFunction":
				managed_type = "Mono.EasingFunctionCallback";
				break;
			case "LoadedCallback":
				managed_type = "Mono.LoadedCallback";
				break;
			case "MeasureOverrideCallback":
				managed_type = "Mono.MeasureOverrideCallback";
				break;
			case "ArrangeOverrideCallback":
				managed_type = "Mono.ArrangeOverrideCallback";
				break;
			case "GetResourceCallback":
				managed_type = "Mono.GetResourceCallback";
				break;
			case "GetValueCallback":
				managed_type = "Mono.GetValueCallback";
				break;
			case "SetValueCallback":
				managed_type = "Mono.SetValueCallback";
				break;
			case "parse_template_func":
				managed_type = "Mono.Xaml.ParseTemplateFunc";
				break;
			case "CloseDemuxerCallback":
			case "GetDiagnosticAsyncCallback":
			case "GetFrameAsyncCallback":
			case "OpenDemuxerAsyncCallback":
			case "SeekAsyncCallback":
			case "SwitchMediaStreamAsyncCallback":
				managed_type = "System.Windows.Media.MediaStreamSource." + Value.Replace ("Callback", "Delegate");
				break;
			case "GDestroyNotify":
				managed_type = "IntPtr"; // hack, because we never pass this from managed code
				                         // (it's used for EventObject::AddHandler).
				break;
			case "char*":
				managed_type = "string";
				break;
			case "char**":
				managed_type = "string[]";
				break;
			case "double*":
				managed_type = "double";
				IsOut = true;
				break;
			case "EventHandler":
				managed_type = "UnmanagedEventHandler";
				break;
			case "Size":
				managed_type = "Size";
				break;
			case "Rect":
				managed_type = "Rect";
				break;
			case "Point":
				managed_type = "Point";
				break;
			case "Thickness":
				managed_type = "Thickness";
				break;
			case "CornerRadius":
				managed_type = "CornerRadius";
				break;
			case "TimeSpan":
				managed_type = "long";
				break;
			case "bool*":
				if (IsReturnType) {
					managed_type = "IntPtr";
				} else {
					IsOut = true;
					managed_type = "bool";
				}
				break;
			case "int*":
				if (IsReturnType) {
					managed_type = "IntPtr";
				} else {
					IsOut = true;
					managed_type = "int";
				}
				break;
			case "Type::Kind*":
				if (IsReturnType) {
					managed_type = "IntPtr";
				} else {
					IsOut = true;
					managed_type = "Kind";
				}
				break;
			case "Type::Kind":
				managed_type = "Kind";
				break;
			case "HttpRequest::Options":
				managed_type = "HttpRequestOptions";
				break;
			case "gpointer":
				managed_type = "IntPtr";
				break;
			case "MoonClipboardType":
				managed_type = "int";
				break;
			case "ModifierKeys":
				managed_type = "int";
				break;
			case "BindingMode":
				managed_type = "int";
				break;
			case "InstallState":
				managed_type = "InstallState";
				break;
			case "ReceiverNameScope":
				managed_type = "int";
				break;
			case "SystemColor":
				managed_type = "int";
				break;
			case "LogicalDirection":
				managed_type = "System.Windows.Documents.LogicalDirection";
				break;
			case "ToggleNotifyHandler":
				managed_type = "Mono.ToggleRef.ToggleNotifyHandler";
				break;

			case "DownloaderCreateStateFunc":
				managed_type = "Mono.DownloaderCreateStateFunc";
				break;
			case "DownloaderDestroyStateFunc":
				managed_type = "Mono.DownloaderDestroyStateFunc";
				break;
			case "DownloaderOpenFunc":
				managed_type = "Mono.DownloaderOpenFunc";
				break;
			case "DownloaderSendFunc":
				managed_type = "Mono.DownloaderSendFunc";
				break;
			case "DownloaderAbortFunc":
				managed_type = "Mono.DownloaderAbortFunc";
				break;
			case "DownloaderHeaderFunc":
				managed_type = "Mono.DownloaderHeaderFunc";
				break;
			case "DownloaderBodyFunc":
				managed_type = "Mono.DownloaderBodyFunc";
				break;
			case "DownloaderCreateWebRequestFunc":
				managed_type = "Mono.DownloaderCreateWebRequestFunc";
				break;
			case "DownloaderSetResponseHeaderCallbackFunc":
				managed_type = "Mono.DownloaderSetResponseHeaderCallbackFunc";
				break;
			case "DownloaderGetResponseFunc":
				managed_type = "Mono.DownloaderGetResponseFunc";
				break;
			case "XamlLoaderCallbacks":
				managed_type = "Xaml.XamlLoaderCallbacks";
				break;
			case "get_image_uri_func":
				managed_type = "Mono.ImageUriFunc";
				break;
			case "TickCallHandler":
				managed_type = "TickCallHandler";
				break;
			case "DownloaderResponseStartedHandler":
				managed_type = "DownloaderResponseStartedDelegate";
				break;
			case "DownloaderResponseDataAvailableHandler":
				managed_type = "DownloaderResponseAvailableDelegate";
				break;
			case "DownloaderResponseFinishedHandler":
				managed_type = "DownloaderResponseFinishedDelegate";
				break;
			case "callback_dom_event*":
				managed_type = "DomEventCallback";
				break;
			case "HttpHeaderVisitor":
			case "InvalidateHandleDelegate":
			case "HasMemberDelegate":
			case "InvokeDelegate":
			case "SetPropertyDelegate":
			case "GetPropertyDelegate":
			case "DownloaderAccessPolicy":
				managed_type = Value;
				break;
			default:
				if (Value.Contains ("*"))
					managed_type = "IntPtr";
				else
					managed_type = "/* Unknown: '" + Value + "' */";
				break;
			}
		}

		return managed_type;
	}
}