Export (0) Print
Expand All

SimpleTypeResolver Class

Provides a type resolver for managed types.

System.Object
  System.Web.Script.Serialization.JavaScriptTypeResolver
    System.Web.Script.Serialization.SimpleTypeResolver

Namespace:  System.Web.Script.Serialization
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)

public class SimpleTypeResolver : JavaScriptTypeResolver

The SimpleTypeResolver type exposes the following members.

  NameDescription
Public methodSimpleTypeResolverInitializes a new instance of the SimpleTypeResolver class.
Top

  NameDescription
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Public methodResolveTypeReturns the Type of the specified name. (Overrides JavaScriptTypeResolver.ResolveType(String).)
Public methodResolveTypeIdReturns the assembly-qualified name of the specified Type. (Overrides JavaScriptTypeResolver.ResolveTypeId(Type).)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

This type resolver can be used with the JavaScriptSerializer class to include in the serialized JavaScript Object Notation (JSON) string the assembly-qualified name of any managed type that requires custom type metadata.

The SimpleTypeResolver class enables you to serialize managed types as JSON while retaining the managed type definition for custom types.

To create an instance of the JavaScriptSerializer class that uses a type resolver, you must use the JavaScriptSerializer(JavaScriptTypeResolver) constructor.

The following example demonstrates how to use the SimpleTypeResolver class and shows the resulting serialized strings by using different type resolvers.

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Script.Serialization" %>
<%@ Import Namespace="System.Web.Script.Serialization.TypeResolver.CS" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

    protected void RadioButtonList1_SelectedIndexChanged(object sender, EventArgs e)
    {

        ColorType customObject = new ColorType();        
        JavaScriptSerializer serializer;

        switch(((RadioButtonList)sender).SelectedIndex)
        {
            case 0:
                serializer = new JavaScriptSerializer();
                Label1.Text = serializer.Serialize(customObject);
                break;
            case 1:
                serializer = new JavaScriptSerializer(new SimpleTypeResolver());
                Label1.Text = serializer.Serialize(customObject);
                break;
            case 2:
                serializer = new JavaScriptSerializer(new CustomTypeResolver());
                Label1.Text = serializer.Serialize(customObject);
                break;
        }
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Type Resolvers</title>
    <style type="text/css">
        body {  font: 10pt Trebuchet MS;
                font-color: #000000;
             }

        .text { font: 8pt Trebuchet MS }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        Select one of the following serialization types:
        <asp:RadioButtonList ID="RadioButtonList1" runat="server" OnSelectedIndexChanged="RadioButtonList1_SelectedIndexChanged" AutoPostBack="True">
            <asp:ListItem Value="0">Serialization with no type resolver</asp:ListItem>
            <asp:ListItem Value="1">Serialization with the SimpleTypeResolver class</asp:ListItem>
            <asp:ListItem Value="2">Serialization with a custom type resolver</asp:ListItem>
        </asp:RadioButtonList>
        <br />
        Note the different resulting serialized strings. The ones that use type resolvers have an extra __type tag.
        <hr />
        Results:
        <table border="0" cellpadding="0" cellspacing="0" width="100%">
            <tr>
                <td>
                    <asp:Label ID="Label1" runat="server" ></asp:Label><br />
                </td>
            </tr>
        </table>        
        <br />
        &nbsp;</div>
    </form>
</body>
</html>

.NET Framework

Supported in: 4.6, 4, 3.5

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Show:
© 2014 Microsoft