40 строки
1.2 KiB
C#
40 строки
1.2 KiB
C#
// Copyright (c) Microsoft Corporation.
|
|
// Licensed under the MIT License.
|
|
|
|
namespace Microsoft.ReactNative.Managed
|
|
{
|
|
public struct ReactPropertyName
|
|
{
|
|
public ReactPropertyNamespace Namespace => new ReactPropertyNamespace(IsValid ? Handle.Namespace : null);
|
|
|
|
public string NamespaceName => IsValid ? Handle.Namespace.NamespaceName : null;
|
|
|
|
public string LocalName => IsValid ? Handle.LocalName : null;
|
|
|
|
public IReactPropertyName Handle { get; }
|
|
|
|
public bool IsValid => Handle != null;
|
|
|
|
public static explicit operator bool(ReactPropertyName propertyName) => propertyName.IsValid;
|
|
|
|
public ReactPropertyName(IReactPropertyName handle = null)
|
|
{
|
|
Handle = handle;
|
|
}
|
|
|
|
public ReactPropertyName(string localName)
|
|
: this((IReactPropertyNamespace)null, localName) { }
|
|
|
|
public ReactPropertyName(string namespaceName, string localName)
|
|
: this(ReactPropertyBagHelper.GetNamespace(namespaceName), localName) { }
|
|
|
|
public ReactPropertyName(ReactPropertyNamespace ns, string localName)
|
|
: this(ns.Handle, localName) { }
|
|
|
|
public ReactPropertyName(IReactPropertyNamespace ns, string localName)
|
|
{
|
|
Handle = ReactPropertyBagHelper.GetName(ns, localName);
|
|
}
|
|
}
|
|
}
|