private string GetItem(ASPHelper.IRequestDictionary dict, string key) { object retVal = null; object o = dict.GetItem(key); ASPHelper.IStringList sl = o as ASPHelper.IStringList; if (sl != null) { if (sl.GetCount() > 0) { retVal = sl.GetItem(1); } Marshal.ReleaseComObject(sl); } else { return(o.GetType().ToString()); } return(Convert.ToString(retVal)); }
/// <summary> /// Renders the specified ASP Request variable and appends it to the specified <see cref="StringBuilder" />. /// </summary> /// <param name="builder">The <see cref="StringBuilder"/> to append the rendered data to.</param> /// <param name="logEvent">Logging event.</param> protected internal override void Append(StringBuilder builder, LogEventInfo logEvent) { ASPHelper.IRequest request = ASPHelper.GetRequestObject(); if (request != null) { if (QueryString != null) { builder.Append(GetItem(request.GetQueryString(), QueryString)); } else if (Form != null) { builder.Append(GetItem(request.GetForm(), Form)); } else if (Cookie != null) { object cookie = request.GetCookies().GetItem(Cookie); builder.Append(Convert.ToString(ASPHelper.GetComDefaultProperty(cookie))); } else if (ServerVariable != null) { builder.Append(GetItem(request.GetServerVariables(), ServerVariable)); } else if (Item != null) { ASPHelper.IDispatch o = request.GetItem(Item); ASPHelper.IStringList sl = o as ASPHelper.IStringList; if (sl != null) { if (sl.GetCount() > 0) { builder.Append(sl.GetItem(1)); } Marshal.ReleaseComObject(sl); } } Marshal.ReleaseComObject(request); } }