Yes, long conversation and hopefully nearing a solution. We're putting a lot of knowledge out there though.
I'll respond to each of your points.
SendingWebRequest - There is no requirement to get the TIME information from other tiles. The TIME parameter is associated with a request, not tiles per se.
Sending Request URL - The TIME parameter is placed in the request at the client in the SendingWebRequest event. In the Local WmsServer that TIME parameter is then found in ProcessRequestCore and GetMapCore. The Local WmsServer does not put the TIME parameter in the request at either ProcessRequestCore or GetMapCore because it is already there from the client. The private class you mention is where the TIME parameter is being removed. I think the solution is to modify that private class and allow the TIME parameter to pass thru to SendingWebRequest.
3a. Options I: Are you saying that if GetMapCore sets the public static property for a given client request that before execution reaches SendingWebRequest another client request may come in and overwrite the value from the first client request? I should mention that as it is now implemented the logic in my SendingWebRequest only adds TIME to the request if the public static property is not empty. Once a TIME is added to the request then the public static property is set to empty.
3b. Options II: I don't understand what the point is of using DateTime.Now as it's a prior time that the client wants to see.
3c. Options III: This is certainly an option to consider and in fact I already have a collection in place with each object corresponding to a client. So I can easy enough place the TIME in the object corresponding to the client in GetMapCore. The issue is how to identify the client in SendingWebRequest. As far as I can see there is no identifiable information within the arguments for SendingWebRequest that identify the client in any way, either thru IP Address, SessionId, etc. Sure a GUID can be used as the key, but how does SendingWebRequest get that GUID out of the SendingWebRequest arguments?
I feel the most solid solution is to modify the private class to detect the presence of a TIME parameter and if present include it in the formatted request that is then passed to SendingWebRequest.
OriStar Mapping, Inc.