ArrayPropertyAttribute
Namespace:
CryptoExchange.Net
We found 10 examples in language CSharp for this search.
You will see 34 fragments of code.
Other methods
Other methods
Project:provausio
File:ArrayPropertyAttribute.cs
Examples:1
using System;
namespace Provausio.Parsing
{
[AttributeUsage(AttributeTargets.Property)]
public class ArrayPropertyAttribute : Attribute
{
/// <summary>
/// Gets or sets the index from which the property will obtain its value in the source array.
/// </summary>
/// <value>
/// The index.
/// </value>
public int Index { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="ArrayPropertyAttribute"/> class.
/// </summary>
/// <param name="index">The index.</param>
public ArrayPropertyAttribute(int index)
{
Index = index;
}
}
}
Project:AVS.CoreLib
File:ArrayConverter.cs
Examples:5
public override bool CanConvert(Type objectType)
{
return true;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (objectType == typeof(JToken))
return JToken.Load(reader);
var result = Activator.CreateInstance(objectType);
var arr = JArray.Load(reader);
return ParseObject(arr, result, objectType);
}
private static object ParseObject(JArray arr, object result, Type objectType)
{
foreach (var property in objectType.GetProperties())
{
var attribute =
(ArrayPropertyAttribute)property.GetCustomAttribute(typeof(ArrayPropertyAttribute));
if (attribute == null)
continue;
if (attribute.Index >= arr.Count)
continue;
if (property.PropertyType.BaseType == typeof(Array))
{
var objType = property.PropertyType.GetElementType();
var innerArray = (JArray)arr[attribute.Index];
var count = 0;
if (innerArray.Count == 0)
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { 0 });
property.SetValue(result, arrayResult);
}
else if (innerArray[0].Type == JTokenType.Array)
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { innerArray.Count });
foreach (var obj in innerArray)
{
var innerObj = Activator.CreateInstance(objType);
arrayResult[count] = ParseObject((JArray)obj, innerObj, objType);
count++;
}
property.SetValue(result, arrayResult);
}
else
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { 1 });
var innerObj = Activator.CreateInstance(objType);
arrayResult[0] = ParseObject(innerArray, innerObj, objType);
property.SetValue(result, arrayResult);
}
continue;
}
var converterAttribute = (JsonConverterAttribute)property.GetCustomAttribute(typeof(JsonConverterAttribute)) ?? (JsonConverterAttribute)property.PropertyType.GetCustomAttribute(typeof(JsonConverterAttribute));
var value = converterAttribute != null ? arr[attribute.Index].ToObject(property.PropertyType, new JsonSerializer { Converters = { (JsonConverter)Activator.CreateInstance(converterAttribute.ConverterType) } }) : arr[attribute.Index];
if (value != null && property.PropertyType.IsInstanceOfType(value))
property.SetValue(result, value);
else
{
if (value is JToken token)
if (token.Type == JTokenType.Null)
value = null;
if ((property.PropertyType == typeof(decimal)
|| property.PropertyType == typeof(decimal?))
&& (value != null && value.ToString().Contains("e")))
{
if (decimal.TryParse(value.ToString(), NumberStyles.Float, CultureInfo.InvariantCulture, out var dec))
property.SetValue(result, dec);
}
else
{
property.SetValue(result, value == null ? null : Convert.ChangeType(value, property.PropertyType));
}
}
}
return result;
}
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteStartArray();
var type = value.GetType();
var boolType = typeof(bool);
var props = type.GetProperties();
var ordered = props.OrderBy(p => p.GetCustomAttribute<ArrayPropertyAttribute>()?.Index);
var last = -1;
foreach (var prop in ordered)
{
var arrayProp = prop.GetCustomAttribute<ArrayPropertyAttribute>();
if (arrayProp == null)
continue;
if (arrayProp.Index == last)
continue;
var shouldSerializeName = "ShouldSerialize" + prop.Name;
var mi = type.GetMethod(shouldSerializeName);
if (mi != null && mi.ReturnType == boolType)
{
bool shouldSerialize = (bool)mi.Invoke(value, new object[] { });
if (shouldSerialize == false)
continue;
}
while (arrayProp.Index != last + 1)
{
writer.WriteValue((string)null);
last += 1;
}
last = arrayProp.Index;
var converterAttribute = (JsonConverterAttribute)prop.GetCustomAttribute(typeof(JsonConverterAttribute));
if (converterAttribute != null)
writer.WriteRawValue(JsonConvert.SerializeObject(prop.GetValue(value), (JsonConverter)Activator.CreateInstance(converterAttribute.ConverterType)));
else if (!IsSimple(prop.PropertyType))
serializer.Serialize(writer, prop.GetValue(value));
else
writer.WriteValue(prop.GetValue(value));
}
writer.WriteEndArray();
}
private static bool IsSimple(Type type)
{
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
{
// nullable type, check if the nested type is simple.
return IsSimple(type.GetGenericArguments()[0]);
}
return type.IsPrimitive
|| type.IsEnum
|| type == typeof(string)
|| type == typeof(decimal);
}
Project:P2pB2b.Net
File:GenericArrayConverter.cs
Examples:5
/// <inheritdoc />
public override bool CanConvert(Type objectType)
{
return true;
}
/// <inheritdoc />
public override object? ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (objectType == typeof(JToken))
return JToken.Load(reader);
var result = Activator.CreateInstance(objectType);
var arr = JArray.Load(reader);
return ParseObject(arr, result, objectType);
}
private static object? ParseObject(JArray arr, object result, Type objectType)
{
foreach (var property in objectType.GetProperties(BindingFlags.NonPublic | BindingFlags.Public
| BindingFlags.Instance | BindingFlags.Static))
{
var attribute =
(ArrayPropertyAttribute)property.GetCustomAttribute(typeof(ArrayPropertyAttribute));
if (attribute == null)
continue;
if (attribute.Index >= arr.Count)
continue;
if (property.PropertyType.BaseType == typeof(Array))
{
var objType = property.PropertyType.GetElementType();
var innerArray = (JArray)arr[attribute.Index];
var count = 0;
if (innerArray.Count == 0)
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { 0 });
property.SetValue(result, arrayResult);
}
else if (innerArray[0].Type == JTokenType.Array)
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { innerArray.Count });
foreach (var obj in innerArray)
{
var innerObj = Activator.CreateInstance(objType);
arrayResult[count] = ParseObject((JArray)obj, innerObj, objType);
count++;
}
property.SetValue(result, arrayResult);
}
else
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { 1 });
var innerObj = Activator.CreateInstance(objType);
arrayResult[0] = ParseObject(innerArray, innerObj, objType);
property.SetValue(result, arrayResult);
}
continue;
}
JToken token1 = arr[attribute.Index];
if (token1.Type == JTokenType.Object||token1.Type==JTokenType.Array)
{
var temp = JsonConvert.DeserializeObject(token1.ToString(), property.PropertyType);
var newInstanse = Activator.CreateInstance(property.PropertyType);
property.SetValue(result, temp ?? newInstanse);
continue;
}
var converterAttribute = (JsonConverterAttribute)property.GetCustomAttribute(typeof(JsonConverterAttribute)) ?? (JsonConverterAttribute)property.PropertyType.GetCustomAttribute(typeof(JsonConverterAttribute));
var conversionAttribute = (JsonConversionAttribute)property.GetCustomAttribute(typeof(JsonConversionAttribute)) ?? (JsonConversionAttribute)property.PropertyType.GetCustomAttribute(typeof(JsonConversionAttribute));
object? value;
if (converterAttribute != null)
{
value = arr[attribute.Index].ToObject(property.PropertyType, new JsonSerializer { Converters = { (JsonConverter)Activator.CreateInstance(converterAttribute.ConverterType) } });
}
else if (conversionAttribute != null)
{
value = arr[attribute.Index].ToObject(property.PropertyType);
}
else
{
value = arr[attribute.Index];
}
if (value != null && property.PropertyType.IsInstanceOfType(value))
property.SetValue(result, value);
else
{
if (value is JToken token)
if (token.Type == JTokenType.Null)
value = null;
if ((property.PropertyType == typeof(decimal)
|| property.PropertyType == typeof(decimal?))
&& (value != null && value.ToString().Contains("e")))
{
if (decimal.TryParse(value.ToString(), NumberStyles.Float, CultureInfo.InvariantCulture, out var dec))
property.SetValue(result, dec);
}
else
{
property.SetValue(result, value == null ? null : Convert.ChangeType(value, property.PropertyType));
}
}
}
return result;
}
/// <inheritdoc />
public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
writer.WriteStartArray();
var props = value.GetType().GetProperties();
var ordered = props.OrderBy(p => p.GetCustomAttribute<ArrayPropertyAttribute>()?.Index);
var last = -1;
foreach (var prop in ordered)
{
var arrayProp = prop.GetCustomAttribute<ArrayPropertyAttribute>();
if (arrayProp == null)
continue;
if (arrayProp.Index == last)
continue;
while (arrayProp.Index != last + 1)
{
writer.WriteValue((string?)null);
last += 1;
}
last = arrayProp.Index;
var converterAttribute = (JsonConverterAttribute)prop.GetCustomAttribute(typeof(JsonConverterAttribute));
if (converterAttribute != null)
writer.WriteRawValue(JsonConvert.SerializeObject(prop.GetValue(value), (JsonConverter)Activator.CreateInstance(converterAttribute.ConverterType)));
else if (!IsSimple(prop.PropertyType))
serializer.Serialize(writer, prop.GetValue(value));
else
writer.WriteValue(prop.GetValue(value));
}
writer.WriteEndArray();
}
private static bool IsSimple(Type type)
{
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
{
// nullable type, check if the nested type is simple.
return IsSimple(type.GetGenericArguments()[0]);
}
return type.IsPrimitive
|| type.IsEnum
|| type == typeof(string)
|| type == typeof(decimal);
}
Project:CryptoExchange.Net
File:ArrayConverter.cs
Examples:6
/// <inheritdoc />
public override bool CanConvert(Type objectType)
{
return true;
}
/// <inheritdoc />
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
{
if (objectType == typeof(JToken))
return JToken.Load(reader);
var result = Activator.CreateInstance(objectType);
var arr = JArray.Load(reader);
return ParseObject(arr, result, objectType);
}
private static object? ParseObject(JArray arr, object result, Type objectType)
{
foreach (var property in objectType.GetProperties())
{
var attribute = GetCustomAttribute<ArrayPropertyAttribute>(property);
if (attribute == null)
continue;
if (attribute.Index >= arr.Count)
continue;
if (property.PropertyType.BaseType == typeof(Array))
{
var objType = property.PropertyType.GetElementType();
var innerArray = (JArray)arr[attribute.Index];
var count = 0;
if (innerArray.Count == 0)
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new [] { 0 });
property.SetValue(result, arrayResult);
}
else if (innerArray[0].Type == JTokenType.Array)
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new [] { innerArray.Count });
foreach (var obj in innerArray)
{
var innerObj = Activator.CreateInstance(objType);
arrayResult[count] = ParseObject((JArray)obj, innerObj, objType);
count++;
}
property.SetValue(result, arrayResult);
}
else
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new [] { 1 });
var innerObj = Activator.CreateInstance(objType);
arrayResult[0] = ParseObject(innerArray, innerObj, objType);
property.SetValue(result, arrayResult);
}
continue;
}
var converterAttribute = GetCustomAttribute<JsonConverterAttribute>(property) ?? GetCustomAttribute<JsonConverterAttribute>(property.PropertyType);
var conversionAttribute = GetCustomAttribute<JsonConversionAttribute>(property) ?? GetCustomAttribute<JsonConversionAttribute>(property.PropertyType);
object? value;
if (converterAttribute != null)
{
value = arr[attribute.Index].ToObject(property.PropertyType, new JsonSerializer {Converters = {(JsonConverter) Activator.CreateInstance(converterAttribute.ConverterType)}});
}
else if (conversionAttribute != null)
{
value = arr[attribute.Index].ToObject(property.PropertyType);
}
else
{
value = arr[attribute.Index];
}
if (value != null && property.PropertyType.IsInstanceOfType(value))
property.SetValue(result, value);
else
{
if (value is JToken token)
if (token.Type == JTokenType.Null)
value = null;
if ((property.PropertyType == typeof(decimal)
|| property.PropertyType == typeof(decimal?))
&& (value != null && value.ToString().Contains("e")))
{
if (decimal.TryParse(value.ToString(), NumberStyles.Float, CultureInfo.InvariantCulture, out var dec))
property.SetValue(result, dec);
}
else
{
property.SetValue(result, value == null ? null : Convert.ChangeType(value, property.PropertyType));
}
}
}
return result;
}
/// <inheritdoc />
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
{
if (value == null)
return;
writer.WriteStartArray();
var props = value.GetType().GetProperties();
var ordered = props.OrderBy(p => GetCustomAttribute<ArrayPropertyAttribute>(p)?.Index);
var last = -1;
foreach (var prop in ordered)
{
var arrayProp = GetCustomAttribute<ArrayPropertyAttribute>(prop);
if (arrayProp == null)
continue;
if (arrayProp.Index == last)
continue;
while (arrayProp.Index != last + 1)
{
writer.WriteValue((string?)null);
last += 1;
}
last = arrayProp.Index;
var converterAttribute = GetCustomAttribute<JsonConverterAttribute>(prop);
if (converterAttribute != null)
writer.WriteRawValue(JsonConvert.SerializeObject(prop.GetValue(value), (JsonConverter)Activator.CreateInstance(converterAttribute.ConverterType)));
else if (!IsSimple(prop.PropertyType))
serializer.Serialize(writer, prop.GetValue(value));
else
writer.WriteValue(prop.GetValue(value));
}
writer.WriteEndArray();
}
private static bool IsSimple(Type type)
{
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
{
// nullable type, check if the nested type is simple.
return IsSimple(type.GetGenericArguments()[0]);
}
return type.IsPrimitive
|| type.IsEnum
|| type == typeof(string)
|| type == typeof(decimal);
}
private static T? GetCustomAttribute<T>(MemberInfo memberInfo) where T : Attribute =>
(T?)attributeByMemberInfoAndTypeCache.GetOrAdd((memberInfo, typeof(T)), tuple => memberInfo.GetCustomAttribute(typeof(T)));
Project:avs-core-lib-nuget
File:ArrayPropertyAttribute.cs
Examples:1
using System;
namespace AVS.CoreLib.REST.Attributes
{
/// <summary>
/// Instructs <see cref="T:AVS.CoreLib.Json.ArrayConverter" /> how to serialize/deserialize json array
/// </summary>
public class ArrayPropertyAttribute : Attribute
{
public int Index { get; set; }
/// <summary>
/// exclusive means either the property will be written
/// (the rest of content props with higher Index value is ignored)
/// or the property is not written but the rest content is written
/// </summary>
public bool Exclusive { get; set; }
public ArrayPropertyAttribute(int index, bool exclusive = false)
{
Index = index;
//Optional = optional;
Exclusive = exclusive;
}
}
}
Project:Provausio.Core
File:ArrayPropertyMapper.cs
Examples:2
public override T Map(IReadOnlyList<string> source, T target)
{
var properties = GetDecoratedProperties(target);
if (properties == null)
return target;
foreach (var property in properties)
{
var attribute = property.GetCustomAttribute<ArrayPropertyAttribute>();
var index = attribute.Index;
var value = GetValue(
index,
source,
attribute.ValidationPattern,
property.CanBeNull(),
property.PropertyType);
property.SetValue(target, value, null);
}
return target;
}
private static List<PropertyInfo> GetDecoratedProperties(T target)
{
var properties = target
.GetType()
.GetTypeInfo()
.DeclaredProperties
.Where(prop => prop.GetCustomAttributes<ArrayPropertyAttribute>().Any())
.ToList();
return properties;
}
Project:RoboTrader
File:OrderBodyConverter.cs
Examples:4
/// <summary>
///
/// </summary>
/// <param name="objectType"></param>
/// <returns></returns>
public override bool CanConvert(Type objectType)
{
return objectType == typeof(List<>);
}
/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="objectType"></param>
/// <param name="existingValue"></param>
/// <param name="serializer"></param>
/// <returns></returns>
public override object? ReadJson(JsonReader reader, Type objectType, object? existingValue, JsonSerializer serializer)
{
if (objectType == typeof(JToken))
return JToken.Load(reader);
var result = Activator.CreateInstance(objectType);
var arr = JArray.Load(reader);
return ParseObject(arr, result, objectType);
}
private object? ParseObject(JArray arr, object result, Type objectType)
{
foreach (var property in objectType.GetProperties())
{
var attribute =
(ArrayPropertyAttribute)property.GetCustomAttribute(typeof(ArrayPropertyAttribute));
var value = arr[attribute.Index].ToObject<List<BitfinexOrderBody>>();
property.SetValue(result, value);
}
return result;
}
/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="serializer"></param>
public override void WriteJson(JsonWriter writer, object? value, JsonSerializer serializer)
{
throw new NotImplementedException();
}
Project:provausio
File:AttributeMapper.cs
Examples:5
public T Map(IReadOnlyList<string> source, T target)
{
var properties = GetDecoratedProperties(target);
if (properties == null)
return target;
foreach (var property in properties)
{
var attribute = property.GetCustomAttribute<ArrayPropertyAttribute>();
var index = attribute.Index;
var stringValue = GetValue(index, source);
var propertyValue = SafeConvert(stringValue, property.PropertyType);
property.SetValue(target, propertyValue, null);
}
return target;
}
private static List<PropertyInfo> GetDecoratedProperties(T target)
{
var properties = target
.GetType()
.GetTypeInfo()
.DeclaredProperties
.Where(prop => prop.GetCustomAttributes<ArrayPropertyAttribute>().Any())
.ToList();
return properties;
}
private static string GetValue(int index, IReadOnlyList<string> source)
{
var value = source.Count < index + 1
? string.Empty
: source[index];
return value;
}
private static object SafeConvert(string value, Type destinationType)
{
var result = GetDefaultValue(destinationType);
try
{
result = Convert.ChangeType(value, destinationType);
return result;
}
catch (FormatException) { }
return result;
}
private static object GetDefaultValue(Type t)
{
return t.GetTypeInfo().IsValueType
? Activator.CreateInstance(t)
: null;
}
Project:avs-core-lib-nuget
File:ArrayConverter.cs
Examples:4
public override bool CanConvert(Type objectType)
{
return true;
}
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
{
if (objectType == typeof(JToken))
return JToken.Load(reader);
var result = Activator.CreateInstance(objectType);
var arr = JArray.Load(reader);
return ParseObject(arr, result, objectType);
}
private static object ParseObject(JArray arr, object result, Type objectType)
{
foreach (var property in objectType.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
var attribute =
(ArrayPropertyAttribute)property.GetCustomAttribute(typeof(ArrayPropertyAttribute));
if (attribute == null)
continue;
if (attribute.Index >= arr.Count)
continue;
if (property.PropertyType.BaseType == typeof(Array))
{
var objType = property.PropertyType.GetElementType();
var innerArray = (JArray)arr[attribute.Index];
var count = 0;
if (innerArray.Count == 0)
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { 0 });
property.SetValue(result, arrayResult);
}
else if (innerArray[0].Type == JTokenType.Array)
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { innerArray.Count });
foreach (var obj in innerArray)
{
var innerObj = Activator.CreateInstance(objType);
arrayResult[count] = ParseObject((JArray)obj, innerObj, objType);
count++;
}
property.SetValue(result, arrayResult);
}
else
{
var arrayResult = (IList)Activator.CreateInstance(property.PropertyType, new[] { 1 });
var innerObj = Activator.CreateInstance(objType);
arrayResult[0] = ParseObject(innerArray, innerObj, objType);
property.SetValue(result, arrayResult);
}
continue;
}
var converterAttribute = (JsonConverterAttribute)property.GetCustomAttribute(typeof(JsonConverterAttribute)) ?? (JsonConverterAttribute)property.PropertyType.GetCustomAttribute(typeof(JsonConverterAttribute));
var value = converterAttribute != null ? arr[attribute.Index].ToObject(property.PropertyType, new JsonSerializer { Converters = { (JsonConverter)Activator.CreateInstance(converterAttribute.ConverterType) } }) : arr[attribute.Index];
if (value != null && property.PropertyType.IsInstanceOfType(value))
property.SetValue(result, value);
else
{
if (value is JToken token)
if (token.Type == JTokenType.Null)
value = null;
if ((property.PropertyType == typeof(decimal)
|| property.PropertyType == typeof(decimal?))
&& (value != null && value.ToString().Contains("e")))
{
if (decimal.TryParse(value.ToString(), NumberStyles.Float, CultureInfo.InvariantCulture, out var dec))
property.SetValue(result, dec);
}
else
{
property.SetValue(result, value == null ? null : Convert.ChangeType(value, property.PropertyType));
}
}
}
return result;
}
public override void WriteJson(JsonWriter writer, object obj, JsonSerializer serializer)
{
writer.WriteStartArray();
var type = obj.GetType();
var props = type.GetProperties();
var list = new SortedList<int, (PropertyInfo prop, bool Exclusive)>();
foreach (var p in props)
{
if (p.HasIgnoreAttribute())
continue;
var attr = p.GetCustomAttribute<ArrayPropertyAttribute>();
if (attr == null)
continue;
list.Add(attr.Index, (p, attr.Exclusive));
}
//drop index gaps e.g. -10 0 1 2 3 etc. the gap is -10;0
var dict = new Dictionary<int, (PropertyInfo prop, bool Exclusive)>(list.Count);
var i = 0;
foreach (var kp in list)
{
dict.Add(i++, kp.Value);
}
var last = -1;
foreach (var kp in dict)
{
var prop = kp.Value.prop;
var index = kp.Key;
if (index == last)
continue;
if (!prop.ShouldSerialize(type, obj))
{
if (kp.Value.Exclusive)
last += 1;
continue;
}
while (index != last + 1)
{
writer.WriteValue((string)null);
last += 1;
}
last = index;
var value = prop.GetValue(obj);
writer.WritePropertyValue(prop, value, serializer);
if (kp.Value.Exclusive)
break;
}
writer.WriteEndArray();
}
Project:com.etsoo.CoreFramework
File:ArrayPropertyAttribute.cs
Examples:1
using System;
namespace com.etsoo.SourceGenerators.Attributes
{
/// <summary>
/// Auto DbDataReader object creator support attribute
/// 自动DbDataReader对象创建者支持属性
/// </summary>
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field)]
public class ArrayPropertyAttribute : Attribute
{
/// <summary>
/// Splitter
/// 分割字符
/// </summary>
public char Splitter { get; set; }
/// <summary>
/// Constructor
/// 构造函数
/// </summary>
/// <param name="splitter">Splitter</param>
public ArrayPropertyAttribute(char splitter)
{
Splitter = splitter;
}
}
}
CryptoExchange.Net.Converters.ArrayPropertyAttribute : Attribute
Constructors :
public ArrayPropertyAttribute(Int32 index = )Methods :
public Int32 get_Index()public Boolean Equals(Object obj = )
public Int32 GetHashCode()
public Object get_TypeId()
public Boolean Match(Object obj = )
public Boolean IsDefaultAttribute()
public Type GetType()
public String ToString()