代码示例上的Base64ToHex()

时间:2009-05-20 18:10:31

标签: c# api

我正在阅读此代码sample

由于我不知道C#,我决定试一试。

编译时我收到了这条消息:

Main.cs(32,65): error CS1061: Type `string' does not contain a definition for `Base64ToHex' and no extension method `Base64ToHex' of type `string' could be found (are you missing a using directive or an assembly reference?)
Compilation failed: 1 error(s), 0 warnings

我查看MSDN并按预期找不到该方法的参考。

问题:该方法来自哪里?

P.S。我的代码如下:

using System.Security.Cryptography;
using System.Text;
using System;

class MainClass
{ 
    public static string Encrypt(string toEncrypt, string key, bool useHashing)
    {
         ..... // same as in post
         .....
    }

    public static void Main( string [] args )
    {
        string key = "secret";

        Console.WriteLine( Encrypt("oscar" + "000", key, true ).Base64ToHex() );
    }

}

2 个答案:

答案 0 :(得分:1)

如果该代码曾经被编译过,Jeff可能在String上有一个名为“Base64ToHex”的扩展方法。 Extension methods允许您定义“扩展”其他类的方法,以便看起来该方法实际上是在该类中定义的:

public static class ExtensionMethods
{
    public static string Base64ToHex(this string str)
    {
        return ...;
    }
}

答案 1 :(得分:1)

Base64ToHex中没有System.String方法。我想你正在寻找Convert.FromBase64StringBitConverter.ToString

string encrypted = Encrypt("oscar" + "000", key, true);
Console.WriteLine(BitConverter.ToString(Convert.FromBase64String(encrypted)));

我看了一下你的链接,我猜他写了一个辅助扩展方法,它做了同样的事情:

public static string Base64ToHex(this string s)
{
    return BitConverter.ToString(Convert.FromBase64String(s));
}