internal void FillHeader(String name, Object value)
{
Message.DebugOut("MethodCall::FillHeaders: name: " + (name == null ? "NULL" : name) + "\n");
Message.DebugOut("MethodCall::FillHeaders: Value.GetClass: " + (value == null ? "NULL" : value.GetType().FullName) + "\n");
Message.DebugOut("MethodCall::FillHeaders: Value.ToString: " + (value == null ? "NULL" : value.ToString()) + "\n");
if (name.Equals("__MethodName"))
{
methodName = (String) value;
}
else if (name.Equals("__Uri"))
{
uri = (String) value;
}
else if (name.Equals("__MethodSignature"))
{
methodSignature = (Type[]) value;
}
else if (name.Equals("__TypeName"))
{
typeName = (String) value;
}
else if (name.Equals("__OutArgs"))
{
outArgs = (Object[]) value;
}
else if (name.Equals("__CallContext"))
{
// if the value is a string, then its the LogicalCallId
if (value is String)
{
callContext = new LogicalCallContext();
callContext.RemotingData.LogicalCallID = (String) value;
}
else
callContext = (LogicalCallContext) value;
}
else if (name.Equals("__Return"))
{
retVal = value;
}
else
{
if (InternalProperties == null)
{
InternalProperties = new Hashtable();
}
InternalProperties[name] = value;
}
}