private object[] GetItemValues(System.Type childRuntimeType) { TypeDecoratorList type = (decorator as TypeDecoratorList); if (null == type || string.IsNullOrEmpty(value)) { return(new object[0]); } if (type.flag < 0) { throw new System.Exception(string.Format("value depth is overflow, max depth is 2")); } char split = type.flag == 0 ? Define.UserDefine.global.excel.splitFlag0 : Define.UserDefine.global.excel.splitFlag1; string[] str_values = value.Split(split); int count = str_values.Length; object[] obj_values = new object[count]; TypeDecorator child = type.child; child.runtimeType = childRuntimeType; for (int i = 0; i < count; i++) { obj_values[i] = ValueAdapter.Adapter(str_values[i], child); } return(obj_values); }
public TypeDecoratorDictionary(TypeDecorator key, TypeDecorator value) : base(null) { this.key = key; this.value = value; typeDecotrator = EDecotratorType.Dictionary; this.originalData = GetName(); Check(); }
public static List <Type> Get_ControlTypes(IModelAdditionalViewControlsRule modelAdditionalViewControlsRule) { TypeDecorator decorator = GetTypeDecorator(modelAdditionalViewControlsRule.DecoratorType, modelAdditionalViewControlsRule.Position); return(decorator != null?FindTypeDescendants(decorator).Select(info => info.Type).ToList() : new List <Type> { typeof(NotAvaliableInThisPlatform) }); }
private void SerializeCSObj(CSObjectData obj, Type type, MemoryStream stream, Assembly assembly, CSObject data, int row) { object instance = Activator.CreateInstance(type); PropertyInfo[] pis = type.GetProperties(BindingFlags.Public | BindingFlags.Instance); int key = 0; int count = pis.Length; for (int i = 0; i < count; i++) { PropertyInfo pi = pis[i]; string value = obj.datas[i]; TypeDecorator typeDecorator = data.type.datas[i]; try { typeDecorator.runtimeType = pi.PropertyType; object objvalue = ValueAdapter.Adapter(value, typeDecorator); pi.SetValue(instance, objvalue, null); if (i == 0 && pi.PropertyType == typeof(int)) { key = (int)objvalue; } } catch (Exception e) { throw new Exception(string.Format("[{0}] complier data is error, the fild is:{1}, value is:{2}, row:{3}, column:{4}, {5}{6} ", data.name, data.property.datas[i].name, value, row + Define.UserDefine.global.excel.startIndex, typeDecorator.index, "\r\n", e.ToString())); } } byte[] data_byte = Serialize(instance); int length = sizeof(int); int data_length = data_byte.Length; int all_length = length + length + data_length; byte[] write = new byte[all_length]; byte[] length_byte = BitConverter.GetBytes(data_length); byte[] key_byte = BitConverter.GetBytes(key); Buffer.BlockCopy(key_byte, 0, write, 0, length); Buffer.BlockCopy(length_byte, 0, write, length, length); Buffer.BlockCopy(data_byte, 0, write, length + length, data_length); stream.Write(write, 0, all_length); }
private void AdapterType(string data, int column) { try { TypeDecorator typeDecorator = TypeAdapter.Adapter(data); typeDecorator.index = column; datas.Add(typeDecorator); } catch (System.Exception e) { Common.Utility.Logger.Log("[{0}] AdapterType error, type is:{1}, column:{2}.", groupName, data, column); throw e; } }
public static object Adapter(string value, TypeDecorator type) { try { switch (type.typeDecotrator) { case EDecotratorType.Int: return(new ValueDecoratorInt(value, type).GetValue()); case EDecotratorType.Float: return(new ValueDecoratorFloat(value, type).GetValue()); case EDecotratorType.Bool: return(new ValueDecoratorBool(value, type).GetValue()); case EDecotratorType.String: return(new ValueDecoratorString(value, type).GetValue()); case EDecotratorType.Vector2: return(new ValueDecoratorVector2(value, type).GetValue()); case EDecotratorType.Vector3: return(new ValueDecoratorVector3(value, type).GetValue()); case EDecotratorType.Color: return(new ValueDecoratorColor(value, type).GetValue()); case EDecotratorType.List: return(new ValueDecoratorList(value, type).GetValue()); case EDecotratorType.Dictionary: return(new ValueDecoratorDictionary(value, type).GetValue()); default: throw new Exception("parse value error, type is " + type.GetName()); } } catch (Exception e) { throw new Exception(string.Format("parse value error, type is {0}, value is {1}, error is: {2}", type.GetName(), value, e.Message)); } }
private object[] GetItemValues(TypeDecorator type, System.Type runtimeType, string[] values) { if (TypeAdapter.IsContainer(type.typeDecotrator)) { throw new Exception(string.Format("map key or value type is container, the type is {0}.", type.GetName())); } if (null == runtimeType || null == values || values.Length < 1) { return(new object[0]); } int count = values.Length; object[] obj_values = new object[count]; type.runtimeType = runtimeType; for (int i = 0; i < count; i++) { obj_values[i] = ValueAdapter.Adapter(values[i], type); } return(obj_values); }
public static Type Get_ControlType(IAdditionalViewControlsRule additionalViewControlsRule) { TypeDecorator decorator = ModelAdditionalViewControlsRuleDomainLogic.GetTypeDecorator(additionalViewControlsRule.DecoratorType, additionalViewControlsRule.Position); return(decorator != null ? decorator.DefaultType : typeof(NotAvaliableInThisPlatform)); }
private static void GenCSCode(CSObject data) { StringBuilder sb = new StringBuilder(); sb.Append(codeHeader); sb.Append("\r\n"); sb.Append(string.Format("using {0};\r\n", CSHelper.GetUseNameSpace())); string nameSpace = Define.UserDefine.global.nameSpace; if (data.HadCollections) { sb.Append("using System.Collections.Generic;\r\n"); } if (data.HadExtends && nameSpace != Define.ConstDefine.EXTENDS_NAMESPACE) { sb.Append(Define.ConstDefine.EXTENDS_NAMESPACE + ";\r\n"); } sb.Append("\r\n"); if (hadnsName) { sb.Append("namespace "); sb.Append(nameSpace); sb.Append("\r\n{"); sb.Append("\r\n"); } sb.Append(tab); sb.Append(CSHelper.ClassAttribute()); sb.Append("\r\n"); if (data.HadExtends) { int index = 1; if (data.HadVector2) { sb.Append(tab); sb.Append(string.Format("[ProtoInclude({0}, typeof(DataTable.Vector2))]\r\n", index)); index++; } if (data.HadVector3) { sb.Append(tab); sb.Append(string.Format("[ProtoInclude({0}, typeof(DataTable.Vector3))]\r\n", index)); index++; } if (data.HadColor) { sb.Append(tab); sb.Append(string.Format("[ProtoInclude({0}, typeof(DataTable.Color))]\r\n", index)); index++; } } sb.Append(tab); sb.Append("public partial class "); sb.Append(data.name); sb.Append("\r\n"); sb.Append(tab); sb.Append("{"); // construction sb.Append("\r\n"); sb.Append(tab); sb.Append("\t"); sb.Append("public "); sb.Append(data.name); sb.Append("() {"); StringBuilder propertyCode = new StringBuilder(); int count = data.typeCount; for (int i = 0; i < count; i++) { TypeDecorator type = data.type.datas[i]; CSObjectPropertyGroup.Data propertry = data.property.datas[i]; if (TypeAdapter.IsContainer(type.typeDecotrator) || TypeAdapter.HadExtends(type)) { sb.Append("\r\n"); sb.Append(tab); sb.Append("\t\t"); sb.Append(propertry.name); sb.Append(" = new "); sb.Append(type.GetName()); sb.Append("();"); } propertyCode.Append("\r\n"); propertyCode.Append(tab); propertyCode.Append("\t"); propertyCode.Append("/// <summary>\r\n"); propertyCode.Append(tab); propertyCode.Append("\t/// "); propertyCode.Append(propertry.summary); propertyCode.Append("\r\n"); propertyCode.Append(tab); propertyCode.Append("\t/// </summary>\r\n"); propertyCode.Append(tab); propertyCode.Append("\t"); int index = i + 1; propertyCode.Append(CSHelper.Attribute(index)); propertyCode.Append("\r\n"); propertyCode.Append(tab); propertyCode.Append("\t"); propertyCode.Append("public "); propertyCode.Append(type.GetName()); propertyCode.Append(" "); propertyCode.Append(propertry.name); propertyCode.Append(" { private set; get; }"); propertyCode.Append("\r\n"); } sb.Append("\r\n"); sb.Append("\t"); sb.Append(tab); sb.Append("}"); sb.Append("\r\n"); sb.Append(propertyCode.ToString()); sb.Append(tab); sb.Append("}"); if (hadnsName) { sb.Append("\r\n"); sb.Append("}"); } CSHelper.Write(data.name, sb.ToString()); }
public ValueDecoratorInt(string value, TypeDecorator decorator) : base(value, decorator) { this.value = string.IsNullOrEmpty(value) ? "0" : value; }
public TypeDecoratorList(TypeDecorator item) : base(item.GetName()) { this.child = item; typeDecotrator = EDecotratorType.List; this.flag = GetDepth(); }
public ValueDecoratorDictionary(string type, TypeDecorator decorator) : base(type, decorator) { }
public ValueDecorator(string value, TypeDecorator decorator) { this.value = value.Trim(); this.decorator = decorator; }
public ValueDecoratorString(string value, TypeDecorator decorator) : base(value, decorator) { this.value = string.IsNullOrEmpty(value) ? string.Empty : value; }
public ValueDecoratorList(string type, TypeDecorator decorator) : base(type, decorator) { }
public ValueDecoratorVector3(string value, TypeDecorator decorator) : base(value, decorator) { }
public ValueDecoratorColor(string value, TypeDecorator decorator) : base(value, decorator) { }
static IEnumerable<ITypeInfo> FindTypeDescendants(TypeDecorator decorator) { return ReflectionHelper.FindTypeDescendants(XafTypesInfo.Instance.FindTypeInfo(decorator.ControlType), true).Where(info => info.FindAttribute<AdditionalViewControlAttribute>()!=null); }
static IEnumerable <ITypeInfo> FindTypeDescendants(TypeDecorator decorator) { return(ReflectionHelper.FindTypeDescendants(XafTypesInfo.Instance.FindTypeInfo(decorator.ControlType), true).Where(info => info.Implements <IAdditionalViewControl>())); }
static IEnumerable<ITypeInfo> FindTypeDescendants(TypeDecorator decorator) { return ReflectionHelper.FindTypeDescendants(XafTypesInfo.Instance.FindTypeInfo(decorator.ControlType), true).Where(info => info.Implements<IAdditionalViewControl>()); }