private void AddParaValueHeader(RequestCreContext requestCreContext, ParameterWrapContext parameterWrap, object paraValue) { if (false == Enable) { return; } if (paraValue == null) { base.AddHeader(requestCreContext, this.Name, ""); return; } object pValue; string pValueStr = Serial(paraValue); if (this.Field != null) { pValue = this.Field.GetValue(paraValue); AddHeader(requestCreContext, this.Name, pValueStr); return; } if (this.Property != null) { pValue = this.Property.GetValue(paraValue); AddHeader(requestCreContext, this.Name, pValueStr); return; } AddHeader(requestCreContext, this.Name, pValueStr); }
internal void FillPath(RequestCreContext requestCreContext, ParameterWrapContext parameterWrapContext) { HttpContent httpContext = requestCreContext.httpRequestMessage.Content; object value = requestCreContext.ParameterValues.Value[parameterWrapContext.Parameter.Position]; string valueStr = parameterWrapContext.Serial(value); requestCreContext.FillPath(this.Name, valueStr); }
internal override void SaveToParameterContext(ParameterWrapContext parameterItem) { if (TypeReflector.IsComplextClass(parameterItem.Parameter.ParameterType)) { throw new NotSupportedException("暂时不支持复杂类型用于header、pathpara"); } parameterItem.pathParaAttribute = this; }
internal override HttpContent Bindbody(RequestCreContext requestCreContext) { StringBuilder stringBuilder = new StringBuilder(); Newtonsoft.Json.JsonTextWriter jsonWriter = new JsonTextWriter(new StringWriter(stringBuilder)); jsonWriter.Formatting = Formatting.Indented; if (this.parameterWraps.Count == 1) { ParameterWrapContext parameterWrapContext = this.parameterWraps[0]; string valueStr = parameterWrapContext.Serial(requestCreContext); if (valueStr == null) { throw new LarkException("parameter value can not be null!"); } if (string.IsNullOrEmpty(parameterWrapContext.Name) && TypeReflector.IsComplextClass(parameterWrapContext.Parameter.ParameterType)) { jsonWriter.WriteRaw(valueStr); } else { jsonWriter.WriteStartObject(); jsonWriter.WritePropertyName(parameterWrapContext.DataName); if (valueStr != null) { jsonWriter.WriteRawValue(valueStr); } jsonWriter.WriteEndObject(); } } else if (this.parameterWraps.Count > 1) { jsonWriter.WriteStartObject(); this.parameterWraps.ForEach(x => { jsonWriter.WritePropertyName(x.DataName); object value = requestCreContext.ParameterValues.Value[x.Parameter.Position]; string valueStr = x.Serial(value); if (valueStr != null) { jsonWriter.WriteRawValue(valueStr); } }); jsonWriter.WriteEndObject(); } else { // output :{} jsonWriter.WriteRaw("{}"); } jsonWriter.Flush(); StringContent stringContent = new StringContent(stringBuilder.ToString(), Encoding.UTF8, "application/json"); return(stringContent); }
internal override void SaveToParameterContext(ParameterWrapContext parameterItem) { if (TypeReflector.IsComplextClass(parameterItem.Parameter.ParameterType)) { throw new NotSupportedException("暂时不支持复杂类型用于header、pathpara"); } if (false == string.IsNullOrEmpty(Value)) { throw new NotSupportedException("对于参数指定Value无效!"); } parameterItem.HeaderAttributes.Add(this); }
internal void AddParameterQueryString(RequestCreContext requestCreContext, ParameterWrapContext parameterWrap) { HttpContent httpContext = requestCreContext.httpRequestMessage.Content; object paraValue = requestCreContext.ParameterValues.Value[parameterWrap.Parameter.Position]; if (TypeReflector.IsPrivateValue(parameterWrap.Parameter.ParameterType)) { //todo valueStr :performance problem ? string valueStr = parameterWrap.Serial(paraValue); parameterWrap.QueryString = this.Name + "=" + valueStr; requestCreContext.QueryString.Add(this.Name, valueStr); } else { if (Field == null && Property == null) { string valueStr = parameterWrap.Serial(paraValue); parameterWrap.QueryString = this.Name + "=" + valueStr; requestCreContext.QueryString.Add(this.Name, valueStr); } else { object value; string queryName = null; if (Field != null) { queryName = Field.Name; value = Field.GetValue(paraValue); } else if (Property != null) { queryName = Property.Name; value = Property.GetValue(paraValue); } else { throw new SystemException(nameof(this.Name)); } string valueStr = parameterWrap.Serial(value); parameterWrap.QueryString = queryName + "=" + valueStr; requestCreContext.QueryString.Add(queryName, valueStr); } } }
internal override void SaveToParameterContext(ParameterWrapContext parameterWrapContext) { base.SaveToParameterContext(parameterWrapContext); parameterWrapContext.SerializeType = SerializeTypes.xml; }
internal override void SaveToParameterContext(ParameterWrapContext parameterItem) { }
internal void AddPara(ParameterWrapContext parameterWrap) { parameterWraps.Add(parameterWrap); }
public ParameterHeaderBind(ParameterWrapContext parameterWrapContext, string name, bool unique) : this(parameterWrapContext) { Name = name; Unique = unique; }
internal virtual void SaveToParameterContext(ParameterWrapContext parameterItem) { }
public ParameterHeaderBind(ParameterWrapContext parameterWrapContext, string name, PropertyInfo property, bool unique) : this(parameterWrapContext) { Name = name; this.Property = property; Unique = unique; }
public ParameterHeaderBind(ParameterWrapContext parameterWrapContext, string name, FieldInfo field, bool unique) : this(parameterWrapContext) { Name = name; this.Field = field; Unique = unique; }
internal override void SaveToParameterContext(ParameterWrapContext parameterItem) { base.SaveToParameterContext(parameterItem); parameterItem.Name = this.Name; }
internal override void SaveToParameterContext(ParameterWrapContext parameterWrapContext) { parameterWrapContext.QueryStringAttribute = this; }
internal override void SaveToParameterContext(ParameterWrapContext parameterItem) { parameterItem.SerializeType = SerializeTypes.json; }
public ParameterHeaderBind(ParameterWrapContext parameterWrapContext) : base(HeaderBind.Source.FromParameter) { this.ParameterWrapContext = parameterWrapContext; }