Tôi đang chơi với ScriptCS (thật tuyệt vời!) Nhưng tôi không thể tìm ra được cách cách xác định phương thức tiện ích trong tệp tập lệnh .csx.Cách xác định phương pháp mở rộng trong tập lệnh scriptcs csx
Hãy ví dụ này:
using System.IO;
public static class Extensions
{
public static string Remove(this string source, params string[] toRemove)
{
foreach(var r in toRemove)
{
source = source.Replace(r,"");
}
return source;
}
}
string[] entries =
Directory
.GetFiles(
@"C:\Users\blah\blah",
"*.mp4",
SearchOption.AllDirectories)
.Select(p => p.Remove("Users"))
.ToArray();
foreach(var e in entries)
{
Console.WriteLine(e);
}
này mang lại các lỗi:
error CS1109: Extension methods must be defined in a top level static class; Extensions is a nested class
Tôi đoán rằng ScriptCS kết thúc tốt đẹp CSX trong một số lớp học mà đang gây ra phần mở rộng được lồng nhau, là có bất kỳ cách này?
Đây là một hạn chế trong Roslyn. Xem: http://social.msdn.microsoft.com/Forums/en-US/roslyn/thread/7c0a18eb-d37a-40e2-a26c-edb59b8f5cf3/. Vì vậy, hiện tại bạn không thể xác định các phương thức mở rộng trong các tệp '.csx'. Bạn cần phải đặt chúng trong một dll và tham khảo dll đó. – nemesv
@nemesv this look answer-worthy =) Cảm ơn bạn – TJB