public static function get_csharp_type_name($full_name) { global $_PROG; if (thelpers::is_container_type($full_name)) { return thelpers::get_csharp_name_internal($full_name); } else { $pos = strrpos($full_name, "."); if (FALSE == $pos) { return thelpers::get_csharp_name_internal($full_name); } else { // check cpp namespace as prefix $prog = NULL; $left = ""; if (thelpers::begin_with($full_name, $_PROG->get_csharp_namespace() . ".")) { $left = substr($full_name, strlen($_PROG->get_csharp_namespace()) + 1); $prog = $_PROG; } else { foreach ($_PROG->includes as $pn => $p) { if (thelpers::begin_with($full_name, $p->get_csharp_namespace() . ".")) { $left = substr($full_name, strlen($p->get_csharp_namespace()) + 1); $prog = $p; break; } } } // check package as prefix if ($prog == NULL) { if (thelpers::begin_with($full_name, $_PROG->name . ".")) { $left = substr($full_name, strlen($_PROG->name) + 1); $prog = $_PROG; } else { foreach ($_PROG->includes as $pn => $p) { if (thelpers::begin_with($full_name, $p->name . ".")) { $left = substr($full_name, strlen($p->name) + 1); $prog = $p; break; } } } } if (NULL == $prog) { return "full type translation from '" . $full_name . "' failed."; } return $prog == $_PROG ? thelpers::get_csharp_name_internal($left) : $prog->get_csharp_namespace() . thelpers::get_csharp_name_internal($left); } } }