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: 19.00.00
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
Example
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.ReadExactly(bytes);

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

    File.WriteAllBytes( tmpFile, bytes );

    return tmpFile;
}
See Also