Recipe 20.16 Receiving Typed Objects with ASP.NET

20.16.1 Problem

You want to be able to handle typed object parameters sent to a .NET back end (an ASPX page, DLL method, or web service method).

20.16.2 Solution

Create a .NET class with the same name as the name to which the ActionScript class is registered. The .NET Flash Remoting gateway automatically converts the ActionScript typed object to an object of the corresponding .NET type.

20.16.3 Discussion

When you pass a typed object to a .NET back end from a Flash movie, the .NET Flash Remoting gateway looks for a .NET class with the same name as the registered class name of the ActionScript object and tries to convert the ActionScript object to that .NET type. Therefore, you need to create a .NET type to correspond to each of the registered ActionScript classes.

For example, in the Flash movie, define the following ActionScript class and register it using the name "MyClass":

function MyClass(a, b) {
  this.a = a;
  this.b = b;

Object.registerClass("MyClass", MyClass);

Then create a .NET class with the same name and the same properties. The .NET class should have a constructor that requires no parameters.

public class MyClass {
  public string a;
  public string b;

  public MyClass(  ){}

Then, so long as the .NET MyClass is accessible to the .NET service function (be it a DLL method, an ASPX page, or a web service method), the service function can accept a parameter of type MyClass. Here is an example of a DLL method that accepts a MyClass parameter:

  public string returnPropertiesString(MyClass myCls) {
    return myCls.a + " " + myCls.b;

20.16.4 See Also

Recipe 20.19

    Part I: Local Recipes
    Part II: Remote Recipes