An unexpected exception in the CSO Gateway. Unexpected exceptions are those not caused by usual mistakes from the user.
An expected exception in the CSO Gateway.
Specifies various parameters affecting the creation of the cso-generated type for the class, the struct, the interface or the enum that this attribute is attached to. Attaching this attribute to a class, a struct, an interface or an enum states that it is cso-ready, i.e that a cso-generated type can be created for it. Enums are automatically cso-ready so it is not necessary to decorate an enum definition with this attribute unless some parameters needs to be specified.
Specifies that the value returned by the equivalent property in the cso-generated type can be used to produce hash codes for instances of that cso-generated type. When a cso-ready class or a cso-ready struct has one or more of its public properties decorated with this attribute, the cso-generated type implements the interface CsoGateway.Collections.ICsoHashProvider and an additional function is created: getCsoHashSource(). That function will returns an Array of the values of the properties that were decorated with the CsoHashSourceAttribute on the server side. The values in that Array are used by the CsoGateway.Collections.Hashing.Hash(object) to produce hashes for objects that implements CsoGateway.Collections.ICsoHashProvider.
Specifies that the property this attribute is attached to should be ignored by the CSO Gateway.
This attribute can be attached to properties of classes and structs. The CSO Gateway ignores all non-public properties and all properties with no get accessor. In these cases the CsoPropertyExcludeAttribute has no effect. The case of properties in structs is pretty straightforward because there is no inheritance: the property will be completely ignored by the CSO Gateway. For classes, the effect of this attribute is inherited by the declarations of the same property in derived classes unless a derived class is decorated with the CsoGeneratedTypeAttribute (a cso-ready class) and has CsoGeneratedTypeAttribute.IgnoreBaseClass set to true. In that case, if that derived class or one of its derived classes declares the property again (by overriding or hiding it) the CSO Gateway will take it into account.
This attribute has different effects on a virtual/override inheritance chain of properties then on a non-virtual/new inheritance chain of property. When the attribute is attached to the base declaration of an inheritance chain of virtual/overrides properties (the one with the virtual modifier), all the other declarations in derived classes will also be ignored whether of not the class of the base declaration is cso-ready. When the attribute is attached to an overriding declaration of the property (the ones with the 'override' modifier), the attribute has -no effect-.
When the attribute is attached to the base declaration of an inheritance chain of non-virtual/new properties (a method with no inheritance modifier), all the other declarations in the derived classes will also be ignored whether of not the class of the base declaration is cso-ready and EVEN if a property hides its base declaration with the new modifier. When the attribute is attached to an hiding declaration of the property (with the 'new' modifier), that property will still be defined in the cso-generated type corresponding to the declaring class of the property. But the value retreived by the Object Gateway will be the value returned by the version of the property that is the closest up in the inheritance chain.
To sum up, the effect of the CsoPropertyExcludeAttribute on a property (disregarding the possibility of a CsoGeneratedTypeAttribute.IgnoreBaseClass set to true):
Handles HTTP request made to the CSO Gateway to query the in-memory collection of cso-types.
The output of an HTTP request to this handler depends on the query string. This handler accepts only one key/value pair in the query string. The key is compared against a list of command names and the value is used to pass parameters to the command.
A request with the 'import' command and 'all' in as parameter will flush all loaded cso-type from the memory. This functionnality is not thread-safe and should only be used for debugging.
The ToClientSideMainConverter class is the main entry point for converting server-side objects into client-side values. More specifically, it provides the following functionnalities:
Here an exaustive list of the .NET types handled by this class
.NET primitive data types
Common data structure in .NET