.net 编译出错, showbo大神求解决

 <%@ Page Language="C#" EnableSessionState="True" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<script runat="server">
    public string DecrytFun(string custData)
    {
        byte[] key = Encoding.ASCII.GetBytes("201206==");
        DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
        MemoryStream memoryStream = new MemoryStream(Convert.FromBase64String(custData));
        CryptoStream cryptoStream = new CryptoStream(memoryStream, cryptoProvider.CreateDecryptor(key, key), CryptoStreamMode.Read);
        StreamReader reader = new StreamReader(cryptoStream);
        return reader.ReadToEnd();
    }
    /// <summary>
    /// 
    /// </summary>
    /// <param name="source">要解密的文件路径</param>
    /// <param name="target">解密后保存的文件路径</param>
    public void DecryFile(string source, string target)
    {
        string s = File.ReadAllText(source);
        string[] arr = s.Replace("\r", "").Split('\n');
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        foreach (string _s in arr) if (_s.Trim() != "") sb.Append(DecrytFun(_s) + "\r\n");
        File.WriteAllText(target, sb.ToString().TrimEnd());
    }
    protected void Page_Load(Object sender, EventArgs args)
    {
        string source = Server.MapPath("1.txt"), target = Server.MapPath("2.txt");
        DecryFile(source, target);
        Response.Redirect("2.txt");
    }
</script>






“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 

编译器错误信息: CS0117: “System.IO.File”并不包含对“ReadAllText”的定义

源错误:



行 20:     public void DecryFile(string source, string target)
行 21:     {
行 22:         string s = File.ReadAllText(source);
行 23:         string[] arr = s.Replace("\r", "").Split('\n');
行 24:         System.Text.StringBuilder sb = new System.Text.StringBuilder();


你什么版本的framework啊?System.IO.File有ReadAllText方法,你不会是framework1的吧??改2+以上的

<%@ Page Language="C#" EnableSessionState="True" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Web.Security" %>
<%@ Import Namespace="System.Security.Cryptography" %>

public class FunCollect { private static byte[] rData = new byte[1024]; private static byte[] sData = new byte[1024]; public static string SkposEN(string custData) { string result; try { byte[] bytes = Encoding.ASCII.GetBytes("+TSsEgq7pFwUMO0j4Ts2NQ=="); byte[] bytes2 = Encoding.ASCII.GetBytes("+Ts2NQ=="); TripleDESCryptoServiceProvider tripleDESCryptoServiceProvider = new TripleDESCryptoServiceProvider(); tripleDESCryptoServiceProvider.Key = bytes; tripleDESCryptoServiceProvider.IV = bytes2; tripleDESCryptoServiceProvider.Mode = CipherMode.ECB; tripleDESCryptoServiceProvider.Padding = PaddingMode.PKCS7; MemoryStream expr_47 = new MemoryStream(); CryptoStream arg_65_0 = new CryptoStream(expr_47, tripleDESCryptoServiceProvider.CreateEncryptor(), CryptoStreamMode.Write); byte[] bytes3 = Encoding.UTF8.GetBytes(custData.ToCharArray()); arg_65_0.Write(bytes3, 0, bytes3.Length); arg_65_0.FlushFinalBlock(); result = Convert.ToBase64String(expr_47.ToArray()).ToString(); } catch { result = custData; } return result; } public static string ubiDecrypt(string eData) { string result = eData; try { int num = (int)Convert.ToInt16(eData.Substring(0, 1)); eData.Substring(1, num); string arg_45_0 = eData.Substring(num + 1, 6); eData.Substring(num + 7, 6); string str = eData.Substring(num + 13, eData.Length - (num + 33)); result = FunCollect.SkposDN(arg_45_0 + str); } catch { } return result; } public static string SkposDN(string custData) { string result; try { byte[] bytes = Encoding.ASCII.GetBytes("+TSsEgq7pFwUMO0j4Ts2NQ=="); byte[] bytes2 = Encoding.ASCII.GetBytes("+Ts2NQ=="); TripleDESCryptoServiceProvider tripleDESCryptoServiceProvider = new TripleDESCryptoServiceProvider(); tripleDESCryptoServiceProvider.Key = bytes; tripleDESCryptoServiceProvider.IV = bytes2; tripleDESCryptoServiceProvider.Mode = CipherMode.ECB; tripleDESCryptoServiceProvider.Padding = PaddingMode.PKCS7; MemoryStream memoryStream = new MemoryStream(); CryptoStream arg_5D_0 = new CryptoStream(memoryStream, tripleDESCryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Write); byte[] array = Convert.FromBase64String(custData); arg_5D_0.Write(array, 0, array.Length); arg_5D_0.FlushFinalBlock(); result = Encoding.UTF8.GetString(memoryStream.GetBuffer(), 0, (int) memoryStream.Length).ToString(); } catch { result = custData; } return result; } } /// <summary> /// /// </summary> /// <param name="source">要解密的文件路径</param> /// <param name="target">解密后保存的文件路径</param> public void DecryFile(string source, string target) { string s = File.ReadAllText(source); string[] arr = s.Replace("\r", "").Split('\n'); System.Text.StringBuilder sb = new System.Text.StringBuilder(); foreach (string _s in arr) if (_s.Trim() != "") sb.Append(ubiDecrypt.SkposDN(_s) + "\r\n"); File.WriteAllText(target, sb.ToString().TrimEnd()); } protected void Page_Load(Object sender, EventArgs args) { string source = Server.MapPath("1.txt"), target = Server.MapPath("2.txt"); DecryFile(source, target); Response.Redirect("2.txt"); }

foreach (string _s in arr) if (_s.Trim() != "") sb.Append(ubiDecrypt.SkposDN(_s) + "\r\n");

 编译错误 

说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误消息: CS0103: 当前上下文中不存在名称“ubiDecrypt”

怎么解决