[System.Security.SecurityCritical] // auto-generated private IChannelInfo GetChannelInfoHelper() { ChannelInfo oldChannelInfo = channelInfo as ChannelInfo; if (oldChannelInfo == null) { return(channelInfo); } Object[] oldChannelData = oldChannelInfo.ChannelData; if (oldChannelData == null) { return(oldChannelInfo); } // <STRIP>This will work for the IIS scenario since the machine name + application name // will differentiate the url. If we generalize this mechanism in the future, // we should only [....] the url if the ObjRef is from the current appdomain.</STRIP> String[] bashInfo = (String[])CallContext.GetData("__bashChannelUrl"); if (bashInfo == null) { return(oldChannelInfo); } String urlToBash = bashInfo[0]; String replacementUrl = bashInfo[1]; // Copy channel info and go [....] urls. ChannelInfo newChInfo = new ChannelInfo(); newChInfo.ChannelData = new Object[oldChannelData.Length]; for (int co = 0; co < oldChannelData.Length; co++) { newChInfo.ChannelData[co] = oldChannelData[co]; // see if this is one of the ones that we need to [....] ChannelDataStore channelDataStore = newChInfo.ChannelData[co] as ChannelDataStore; if (channelDataStore != null) { String[] urls = channelDataStore.ChannelUris; if ((urls != null) && (urls.Length == 1) && urls[0].Equals(urlToBash)) { // We want to [....] just the url, so we do a shallow copy // and replace the url array with the replacementUrl. ChannelDataStore newChannelDataStore = channelDataStore.InternalShallowCopy(); newChannelDataStore.ChannelUris = new String[1]; newChannelDataStore.ChannelUris[0] = replacementUrl; newChInfo.ChannelData[co] = newChannelDataStore; } } } return(newChInfo); } // GetChannelInfoHelper
[System.Security.SecurityCritical] // auto-generated private IChannelInfo GetChannelInfoHelper() { ChannelInfo oldChannelInfo = channelInfo as ChannelInfo; if (oldChannelInfo == null) { return(channelInfo); } Object[] oldChannelData = oldChannelInfo.ChannelData; if (oldChannelData == null) { return(oldChannelInfo); } // < String[] bashInfo = (String[])CallContext.GetData("__bashChannelUrl"); if (bashInfo == null) { return(oldChannelInfo); } String urlToBash = bashInfo[0]; String replacementUrl = bashInfo[1]; // Copy channel info and go [....] urls. ChannelInfo newChInfo = new ChannelInfo(); newChInfo.ChannelData = new Object[oldChannelData.Length]; for (int co = 0; co < oldChannelData.Length; co++) { newChInfo.ChannelData[co] = oldChannelData[co]; // see if this is one of the ones that we need to [....] ChannelDataStore channelDataStore = newChInfo.ChannelData[co] as ChannelDataStore; if (channelDataStore != null) { String[] urls = channelDataStore.ChannelUris; if ((urls != null) && (urls.Length == 1) && urls[0].Equals(urlToBash)) { // We want to [....] just the url, so we do a shallow copy // and replace the url array with the replacementUrl. ChannelDataStore newChannelDataStore = channelDataStore.InternalShallowCopy(); newChannelDataStore.ChannelUris = new String[1]; newChannelDataStore.ChannelUris[0] = replacementUrl; newChInfo.ChannelData[co] = newChannelDataStore; } } } return(newChInfo); } // GetChannelInfoHelper
} // GetObjectDataHelper // This method retrieves the channel info object to be serialized. // It does special checking to see if a channel url needs to be bashed // (currently used for switching "http://..." url to "https://...". private IChannelInfo GetChannelInfoHelper() { ChannelInfo oldChannelInfo = channelInfo as ChannelInfo; if (oldChannelInfo == null) { return(channelInfo); } Object[] oldChannelData = oldChannelInfo.ChannelData; if (oldChannelData == null) { return(oldChannelInfo); } String[] bashInfo = (String[])CallContext.GetData("__bashChannelUrl"); if (bashInfo == null) { return(oldChannelInfo); } String urlToBash = bashInfo[0]; String replacementUrl = bashInfo[1]; ChannelInfo newChInfo = new ChannelInfo(); newChInfo.ChannelData = new Object[oldChannelData.Length]; for (int co = 0; co < oldChannelData.Length; co++) { newChInfo.ChannelData[co] = oldChannelData[co]; ChannelDataStore channelDataStore = newChInfo.ChannelData[co] as ChannelDataStore; if (channelDataStore != null) { String[] urls = channelDataStore.ChannelUris; if ((urls != null) && (urls.Length == 1) && urls[0].Equals(urlToBash)) { ChannelDataStore newChannelDataStore = channelDataStore.InternalShallowCopy(); newChannelDataStore.ChannelUris = new String[1]; newChannelDataStore.ChannelUris[0] = replacementUrl; newChInfo.ChannelData[co] = newChannelDataStore; } } } return(newChInfo); } // GetChannelInfoHelper
private IChannelInfo GetChannelInfoHelper() { ChannelInfo channelInfo = this.channelInfo as ChannelInfo; if (channelInfo == null) { return(this.channelInfo); } object[] channelData = channelInfo.ChannelData; if (channelData == null) { return(channelInfo); } string[] array = (string[])CallContext.GetData("__bashChannelUrl"); if (array == null) { return(channelInfo); } string value = array[0]; string text = array[1]; ChannelInfo channelInfo2 = new ChannelInfo(); channelInfo2.ChannelData = new object[channelData.Length]; for (int i = 0; i < channelData.Length; i++) { channelInfo2.ChannelData[i] = channelData[i]; ChannelDataStore channelDataStore = channelInfo2.ChannelData[i] as ChannelDataStore; if (channelDataStore != null) { string[] channelUris = channelDataStore.ChannelUris; if (channelUris != null && channelUris.Length == 1 && channelUris[0].Equals(value)) { ChannelDataStore channelDataStore2 = channelDataStore.InternalShallowCopy(); channelDataStore2.ChannelUris = new string[1]; channelDataStore2.ChannelUris[0] = text; channelInfo2.ChannelData[i] = channelDataStore2; } } } return(channelInfo2); }
private IChannelInfo GetChannelInfoHelper() { System.Runtime.Remoting.ChannelInfo channelInfo1 = this.channelInfo as System.Runtime.Remoting.ChannelInfo; if (channelInfo1 == null) { return(this.channelInfo); } object[] channelData = channelInfo1.ChannelData; if (channelData == null) { return((IChannelInfo)channelInfo1); } string[] strArray = (string[])CallContext.GetData("__bashChannelUrl"); if (strArray == null) { return((IChannelInfo)channelInfo1); } string str1 = strArray[0]; string str2 = strArray[1]; System.Runtime.Remoting.ChannelInfo channelInfo2 = new System.Runtime.Remoting.ChannelInfo(); channelInfo2.ChannelData = new object[channelData.Length]; for (int index = 0; index < channelData.Length; ++index) { channelInfo2.ChannelData[index] = channelData[index]; ChannelDataStore channelDataStore1 = channelInfo2.ChannelData[index] as ChannelDataStore; if (channelDataStore1 != null) { string[] channelUris = channelDataStore1.ChannelUris; if (channelUris != null && channelUris.Length == 1 && channelUris[0].Equals(str1)) { ChannelDataStore channelDataStore2 = channelDataStore1.InternalShallowCopy(); channelDataStore2.ChannelUris = new string[1]; channelDataStore2.ChannelUris[0] = str2; channelInfo2.ChannelData[index] = (object)channelDataStore2; } } } return((IChannelInfo)channelInfo2); }
private IChannelInfo GetChannelInfoHelper() { System.Runtime.Remoting.ChannelInfo channelInfo = this.channelInfo as System.Runtime.Remoting.ChannelInfo; if (channelInfo == null) { return(this.channelInfo); } object[] channelData = channelInfo.ChannelData; if (channelData == null) { return(channelInfo); } string[] data = (string[])CallContext.GetData("__bashChannelUrl"); if (data == null) { return(channelInfo); } string str = data[0]; string str2 = data[1]; System.Runtime.Remoting.ChannelInfo info2 = new System.Runtime.Remoting.ChannelInfo { ChannelData = new object[channelData.Length] }; for (int i = 0; i < channelData.Length; i++) { info2.ChannelData[i] = channelData[i]; ChannelDataStore store = info2.ChannelData[i] as ChannelDataStore; if (store != null) { string[] channelUris = store.ChannelUris; if (((channelUris != null) && (channelUris.Length == 1)) && channelUris[0].Equals(str)) { ChannelDataStore store2 = store.InternalShallowCopy(); store2.ChannelUris = new string[] { str2 }; info2.ChannelData[i] = store2; } } } return(info2); }