public static bool TryFrom(string prefix, Type declaredType, out DurableType type) { type = DurablePrefix.TryFrom(prefix, out var parsedPrefix) ? CreateType(parsedPrefix, declaredType) : null; return(type != null); }
public static bool TryFrom(string prefix, string name, out DurableTypeKey key) { key = DurablePrefix.TryFrom(prefix, out var parsedPrefix) && TypeName.TryFrom(name, out var parsedName) ? new DurableTypeKey(parsedPrefix, parsedName) : null; return(key != null); }
// // Details // static bool TryGetKey(Type declaredType, out DurableTypeKey key) { var value = declaredType.GetCustomAttribute <DurablePrefixAttribute>()?.Prefix ?? declaredType.Assembly.GetCustomAttribute <DurablePrefixAttribute>()?.Prefix ?? ""; key = DurablePrefix.TryFrom(value, out var prefix) ? DurableTypeKey.From(prefix, TypeName.From(declaredType)) : null; return(key != null); }
public static bool TryFrom(string value, out DurableTypeKey key) { var parts = (value ?? "").Split(':'); if (parts.Length == 1 && TypeName.TryFrom(parts[0], out var name)) { key = new DurableTypeKey(DurablePrefix.None, name); } else if (parts.Length == 2 && DurablePrefix.TryFrom(parts[0], out var prefix) && TypeName.TryFrom(parts[1], out name)) { key = new DurableTypeKey(prefix, name); } else { key = null; } return(key != null); }