TryLoad
Loads a single property, already deseriazed into an object.
Read time 2 minutesLast updated 5 days ago
Definition
- Type: Method
- Namespace: UnityEditor.Search
- Assembly: UnityEditor
TryLoad(PropertyDatabaseRecordKey, Object)
Loads a single property, already deseriazed into an object.
public bool TryLoad(in PropertyDatabaseRecordKey recordKey, out object value)
Parameters
Returns
Type | Description |
|---|---|
| bool | True if the record is found and is valid, false otherwise. |
Remarks
// Load the value already deserialized.var colorRecordKey = PropertyDatabase.CreateRecordKey("path/to/my/asset", "m_Color");if (!propertyDatabase.TryLoad(colorRecordKey, out object colorObject)) Assert.Fail("Failed to load color property.");var color = (Color)colorObject;Assert.AreEqual(new Color(1, 0, 1), color);
Additional Resources: PropertyDatabase.CreateRecordKey.
TryLoad(PropertyDatabaseRecordKey, IPropertyDatabaseRecordValue)
Loads a single property, still contained within a record.
public bool TryLoad(in PropertyDatabaseRecordKey recordKey, out IPropertyDatabaseRecordValue value)
Parameters
A record key.
The property record.
Returns
Type | Description |
|---|---|
| bool | True if the record is found and is valid, false otherwise. |
Remarks
This method doesn't deserialize the value. You have to deserialize it yourself by calling PropertyDatabase.GetObjectFromRecordValue.
// Load the record value to do a deserialization at the appropriate time.var sizeRecordKey = PropertyDatabase.CreateRecordKey("path/to/my/asset", "m_Size");if (!propertyDatabase.TryLoad(sizeRecordKey, out IPropertyDatabaseRecordValue sizeRecordValue)) Assert.Fail("Failed to load size property.");var size = propertyDatabase.GetValueFromRecord<int>(sizeRecordValue);Assert.AreEqual(42, size);
Additional Resources: PropertyDatabase.CreateRecordKey.
TryLoad(ulong, IEnumerable<Object>)
Loads all the properties of a document, already deseriazed into objects.
public bool TryLoad(ulong documentKey, out IEnumerable<object> data)
Parameters
Returns
Type | Description |
|---|---|
| bool | True if the record is found and is valid, false otherwise. |
Remarks
// Load all values not associated with a document, already deserialized.var nullDocumentKey = PropertyDatabase.CreateDocumentKey(null);if (!propertyDatabase.TryLoad(nullDocumentKey, out IEnumerable<object> noDocumentProperties)) Assert.Fail("Failed to load properties with no documents.");Assert.IsNotEmpty(noDocumentProperties);Assert.AreEqual("myDocs_", noDocumentProperties.First());
Additional Resources: PropertyDatabase.CreateDocumentKey.
TryLoad(ulong, IEnumerable<IPropertyDatabaseRecord>)
Loads all the properties of a document, still contained within records.
public bool TryLoad(ulong documentKey, out IEnumerable<IPropertyDatabaseRecord> records)
Parameters
A document key.
The document property records.
Returns
Type | Description |
|---|---|
| bool | True if the record is found and is valid, false otherwise. |
Remarks
This method doesn't deserialize the values. You have to deserialize them yourself by calling PropertyDatabase.GetObjectFromRecordValue.
// Load all values associated with a document, not deserialized.var myAssetDocumentKey = PropertyDatabase.CreateDocumentKey("path/to/my/asset");if (!propertyDatabase.TryLoad(myAssetDocumentKey, out IEnumerable<IPropertyDatabaseRecord> myDocumentRecords)) Assert.Fail("Failed to load records for my asset document.");var deserializedValues = new Dictionary<PropertyDatabaseRecordKey, object>();foreach (var myDocumentRecord in myDocumentRecords){ var value = propertyDatabase.GetValueFromRecord<object>(myDocumentRecord.value); deserializedValues.Add(myDocumentRecord.key, value);}Assert.AreEqual(5, deserializedValues.Count);
Additional Resources: PropertyDatabase.CreateDocumentKey.