培训考核三期,新版培训,网页版培训登录器
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

234 lines
7.0 KiB

#if !BESTHTTP_DISABLE_ALTERNATE_SSL && (!UNITY_WEBGL || UNITY_EDITOR)
#pragma warning disable
using System;
using System.Globalization;
using System.IO;
using System.Text;
#if SILVERLIGHT || PORTABLE || NETFX_CORE
using System.Collections.Generic;
#else
using System.Collections;
#endif
namespace BestHTTP.SecureProtocol.Org.BouncyCastle.Utilities
{
internal abstract class Platform
{
private static readonly CompareInfo InvariantCompareInfo = CultureInfo.InvariantCulture.CompareInfo;
#if NETCF_1_0 || NETCF_2_0
private static string GetNewLine()
{
MemoryStream buf = new MemoryStream();
StreamWriter w = new StreamWriter(buf, Encoding.UTF8);
w.WriteLine();
Dispose(w);
byte[] bs = buf.ToArray();
return Encoding.UTF8.GetString(bs, 0, bs.Length);
}
#else
private static string GetNewLine()
{
return Environment.NewLine;
}
#endif
internal static bool EqualsIgnoreCase(string a, string b)
{
#if PORTABLE || NETFX_CORE
return String.Equals(a, b, StringComparison.OrdinalIgnoreCase);
#else
return ToUpperInvariant(a) == ToUpperInvariant(b);
#endif
}
#if NETCF_1_0 || NETCF_2_0 || SILVERLIGHT || (PORTABLE || NETFX_CORE && !DOTNET)
internal static string GetEnvironmentVariable(
string variable)
{
return null;
}
#else
internal static string GetEnvironmentVariable(
string variable)
{
try
{
return Environment.GetEnvironmentVariable(variable);
}
catch (System.Security.SecurityException)
{
// We don't have the required permission to read this environment variable,
// which is fine, just act as if it's not set
return null;
}
}
#endif
#if NETCF_1_0
internal static Exception CreateNotImplementedException(
string message)
{
return new Exception("Not implemented: " + message);
}
internal static bool Equals(
object a,
object b)
{
return a == b || (a != null && b != null && a.Equals(b));
}
#else
internal static Exception CreateNotImplementedException(
string message)
{
return new NotImplementedException(message);
}
#endif
#if SILVERLIGHT || PORTABLE || NETFX_CORE
internal static System.Collections.IList CreateArrayList()
{
return new List<object>();
}
internal static System.Collections.IList CreateArrayList(int capacity)
{
return new List<object>(capacity);
}
internal static System.Collections.IList CreateArrayList(System.Collections.ICollection collection)
{
System.Collections.IList result = new List<object>(collection.Count);
foreach (object o in collection)
{
result.Add(o);
}
return result;
}
internal static System.Collections.IList CreateArrayList(System.Collections.IEnumerable collection)
{
System.Collections.IList result = new List<object>();
foreach (object o in collection)
{
result.Add(o);
}
return result;
}
internal static System.Collections.IDictionary CreateHashtable()
{
return new Dictionary<object, object>();
}
internal static System.Collections.IDictionary CreateHashtable(int capacity)
{
return new Dictionary<object, object>(capacity);
}
internal static System.Collections.IDictionary CreateHashtable(System.Collections.IDictionary dictionary)
{
System.Collections.IDictionary result = new Dictionary<object, object>(dictionary.Count);
foreach (System.Collections.DictionaryEntry entry in dictionary)
{
result.Add(entry.Key, entry.Value);
}
return result;
}
#else
internal static System.Collections.IList CreateArrayList()
{
return new ArrayList();
}
internal static System.Collections.IList CreateArrayList(int capacity)
{
return new ArrayList(capacity);
}
internal static System.Collections.IList CreateArrayList(System.Collections.ICollection collection)
{
return new ArrayList(collection);
}
internal static System.Collections.IList CreateArrayList(System.Collections.IEnumerable collection)
{
ArrayList result = new ArrayList();
foreach (object o in collection)
{
result.Add(o);
}
return result;
}
internal static System.Collections.IDictionary CreateHashtable()
{
return new Hashtable();
}
internal static System.Collections.IDictionary CreateHashtable(int capacity)
{
return new Hashtable(capacity);
}
internal static System.Collections.IDictionary CreateHashtable(System.Collections.IDictionary dictionary)
{
return new Hashtable(dictionary);
}
#endif
internal static string ToLowerInvariant(string s)
{
#if PORTABLE || NETFX_CORE
return s.ToLowerInvariant();
#else
return s.ToLower(CultureInfo.InvariantCulture);
#endif
}
internal static string ToUpperInvariant(string s)
{
#if PORTABLE || NETFX_CORE
return s.ToUpperInvariant();
#else
return s.ToUpper(CultureInfo.InvariantCulture);
#endif
}
internal static readonly string NewLine = GetNewLine();
#if PORTABLE || NETFX_CORE
internal static void Dispose(IDisposable d)
{
d.Dispose();
}
#else
internal static void Dispose(Stream s)
{
s.Close();
}
internal static void Dispose(TextWriter t)
{
t.Close();
}
#endif
internal static int IndexOf(string source, string value)
{
return InvariantCompareInfo.IndexOf(source, value, CompareOptions.Ordinal);
}
internal static int LastIndexOf(string source, string value)
{
return InvariantCompareInfo.LastIndexOf(source, value, CompareOptions.Ordinal);
}
internal static bool StartsWith(string source, string prefix)
{
return InvariantCompareInfo.IsPrefix(source, prefix, CompareOptions.Ordinal);
}
internal static bool EndsWith(string source, string suffix)
{
return InvariantCompareInfo.IsSuffix(source, suffix, CompareOptions.Ordinal);
}
internal static string GetTypeName(object obj)
{
return obj.GetType().FullName;
}
}
}
#pragma warning restore
#endif