Click or drag to resize

UserResourceReference Class

Class representing custom properties of type UserResource.
Inheritance Hierarchy
SystemObject
  Demo3D.VisualsUserResourceReference

Namespace:  Demo3D.Visuals
Assembly:  Demo3D.Core (in Demo3D.Core.dll) Version: 15.0.2.11458
Syntax
C#
public sealed class UserResourceReference

The UserResourceReference type exposes the following members.

Constructors
  NameDescription
Public methodUserResourceReference
Initializes a new instance of the UserResourceReference class.
Public methodUserResourceReference(String)
Initializes a new instance of the UserResourceReference class
Top
Properties
  NameDescription
Public propertyIsNull
Gets a value indicating whether the current instance is null (i.e. doesn't refer to a UserResource instance).
Top
Methods
  NameDescription
Public methodClear
Clears this UserResourceReference so it does not refer to a UserResource.
Public methodRead
Populates this instance of UserResourceReference from a serialized version.
Public methodToString
Returns a string representation of this instance's value.
(Overrides ObjectToString.)
Public methodView
Public methodWrite
Serializes this instance of UserResourceReference.
Top
Operators
  NameDescription
Public operatorStatic member(String to UserResourceReference)
Allow implicit conversion of string (path) to UserResourceReference for QuickScript C# code generation.
Top
Examples
C#
[Auto] CustomPropertyValue<UserResourceReference> Data;

[Auto] void OnReset(BoxVisual sender) {
    if (!sender.HasProperty("Data")) return;

    var ur = document.FindUserResource(this.Data);
    var localFile = WriteUserResourceToTemporaryFile( ur );

    if (localFile == "") return;

    var dataTable =
        Demo3D.Utilities.DataSourceImporter.ReadDataTableFromTextFile( localFile );

    File.Delete( localFile );

    foreach (var colName in dataTable.Columns) {
        print(colName);
    }
}

string WriteUserResourceToTemporaryFile(UserResource ur) {
    if (ur == null) return "";

    var ins   = ur.GetInputStream(null);
    var len   = ins.Length;
    var bytes = new byte[len];

    ins.Read( bytes, 0, (int)len );

    var tmpFile = 
        Path.Combine( Path.GetTempPath(), Path.GetFileName(ur.LocalPath) );

    File.WriteAllBytes( tmpFile, bytes );

    return tmpFile;
}
See Also