调用新的扩展方法 Class

Calling Extension Method to new Class

我是 ASP.NET MVC 的新手,甚至是扩展方法的新手。

我有一个我写的扩展方法

public static string ExtensionMethod(this Extension extype)
    {
        switch (extype)
        {
            case Extension.ONE:
                return "Object one string";

            case Extension.TWO:
                return "Object two string ";

            case Extension.THREE:
                return "Object three string";

            default:
                return "Any other string";
        }
    }

所以基本上它所做的是比较在视图中所做的选择并更改标签以匹配他们选择的内容。轻松愉快。
现在他们希望他们的收据能够准确反映该字符串。所以我有一个 class 来管理我的电子邮件,但我不知道如何将值放入 class。

在我看来我叫

@Model.ViewModelReference.Extension();

这很好用,但我不知道如何在另一个 class

中引用扩展 class
email.To = receiptInfo.EmailAddress;
email.From = "email address";
email.Subject = "Reciept";
            var bodyFormat = new StringBuilder();
            bodyFormat.AppendLine("*RECEIPT*\t");
            bodyFormat.AppendLine("I want Object string to show up here");

编辑

谢谢。我是这样实现的

bodyFormat.AppendLine(MyNameSpace.MyExtension.Extension());

但我遇到参数错误,我不能 100% 确定应该放入哪个参数,或者它甚至需要一个。如果我不添加 () 它会抛出无法转换为字符串的错误。通过我放入 extype 的逻辑,但它也不喜欢那样,说它在当前上下文中不存在。

您只需包含扩展方法所在的 class,扩展方法就可用。

在管理电子邮件的class中添加:

using MyNameSpace.MyExtension;

然后要使用它,只需拥有 Extension 类型的东西并从中调用 ExtensionMethod()。所以它看起来像:

using MyNameSpace.MyExtension;

var myExtension = new Extension();
myExtension.ExtensionMethod()

你不能简单地调用 MyNameSpace.MyExtension.Extension(),你需要一个 MyExtension 的实例,这就是为什么在我的例子中我有 myExtension 变量。