Syntax

C#
public interface IPdxInstance
Visual Basic (Declaration)
Public Interface IPdxInstance
Visual C++
public interface class IPdxInstance

The type exposes the following methods.

Public Methods

  NameDescription
Public methodCreateWriter
Creates and returns a IWritablePdxInstance whose initial values are those of this PdxInstance. This call returns a copy of the current field values so modifications made to the returned value will not modify this PdxInstance.
Public methodDispose
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
(Inherited from IDisposable.)
Public methodEquals
Returns true if the given object is equals to this instance. If
CopyC#
other
is not a PdxInstance then it is not equal to this instance. NOTE: Even if
CopyC#
other
is the result of calling GetObject()() it will not be equal to this instance. Otherwise equality of two PdxInstances is determined as follows:
  • The domain class name must be equal for both PdxInstances
  • Each identity field must be equal.
If one of the instances does not have a field that the other one does then equals will assume it has the field with a default value. If a PdxInstance has marked identity fields using [!:IPdxWriter.MarkIdentityField] then only the marked identity fields are its identity fields. Otherwise all its fields are identity fields. An identity field is equal if all the following are true:
  • The field name is equal.
  • The field type is equal.
  • The field value is equal.
If a field's type is
CopyC#
OBJECT
then its value must be deserialized to determine if it is equals. If the deserialized object is an array then all the array element is used to determine equality. Otherwise [!:Object.Equals] is used. If a field's type is
CopyC#
OBJECT[]
then its value must be deserialized and all the array element is used to determine equality. For all other field types then the value does not need to be deserialized. Instead the serialized raw bytes are compared and used to determine equality. Note that any fields that have objects that do not override [!:Object.Equals] will cause equals to return false when you might have expected it to return true.
Public methodGetField
Reads the named field and returns its value. If the field does not exist
CopyC#
null
is returned. A
CopyC#
null
result indicates that the field does not exist or that it exists and its value is currently
CopyC#
null
. The HasField(String) method can be used to figure out which if these two cases is true. If an Object[] is deserialized by this call then that array's component type will be
CopyC#
Object
instead of the original class that the array had when it was serialized. This is done so that PdxInstance objects can be added to the array.
Public methodGetFieldNames
Return an list of the field names on this PdxInstance.
Public methodGetHashCode
Generates a hashCode based on the identity fields of this PdxInstance. If a PdxInstance has marked identity fields using [!:IPdxWriter.MarkIdentityField] then only the marked identity fields are its identity fields. Otherwise all its fields are identity fields. If an identity field is of type
CopyC#
OBJECT
then it is deserialized. If the deserialized object is an array then all the array element is used. Otherwise [!:Object.GetHashCode] is used. If an identity field is of type
CopyC#
OBJECT[]
this it is deserialized and all the array element is used. Otherwise the field is not deserialized and the raw bytes of its value are used to compute the hash code.
Public methodGetObject
Deserializes and returns the domain object that this instance represents.
Public methodHasField
Checks if the named field exists and returns the result. This can be useful when writing code that handles more than one version of a PDX class.
Public methodIsIdentityField
Checks if the named field was [!:IPdxWriter.MarkIdentityField] marked as an identity field. Note that if no fields have been marked then all the fields are used as identity fields even though this method will return
CopyC#
false
since none of them have been marked.
Public methodToString
Prints out all of the identity fields of this PdxInstance. If a PdxInstance has marked identity fields using [!:IPdxWriter.MarkIdentityField] then only the marked identity fields are its identity fields. Otherwise all its fields are identity fields.

See Also