Tôi thích cách String.Format sử dụng đối số để chèn biến vào chuỗi mà nó định dạng. Điều này được gọi là Composite Formating và được thảo luận bởi MSDN here.Làm cách nào để tạo phương thức riêng của tôi tương tự như String.Format bằng cách sử dụng Định dạng hỗn hợp trong C#
Tôi muốn chức năng này với mặt tiền đăng nhập của tôi:
string foo = "fancy";
string bar = "message";
log.Debug("My {0} log {1}.", foo, bar)
My ILoggerFacade có phương pháp chữ ký sau đây:
void Debug<T>(T message, params Object[] args);
Và, tôi biết tôi có thể thực hiện điều này khá đơn giản:
ILog m_Log = \\some logging implementation
public void Debug<T>(T message, params Object[] args)
{
m_Log.Debug(String.Format(message, args));
}
Tuy nhiên, trong Visual Studio tôi không nhận được đánh dấu ưa thích của {0}, {1}, ... ar guments:
Tôi đoán nó là ReSharper người resposible cho họ, và nó có vẻ như nó chỉ được bỏ qua các đối số định dạng và đem lại cho không "IntelliSense" giúp đỡ. Điều này là không tốt vì các nhà phát triển khác, những người sẽ sử dụng mặt tiền sẽ mong đợi điều này.
Làm thế nào để làm nổi bật luận và "IntelliSense" cho các phương pháp định dạng tùy chỉnh tương tự như cách các công việc:
Console.WriteLine(...)
String.Format(...)
etc...
Bất kỳ trợ giúp sẽ được đánh giá cao.
Giới thiệu về cách thứ ba để thêm chú thích - bạn có thể đặt tệp chú thích xml gần lắp ráp, đặt tên nó là .ExternalAnnotations.xml và cam kết CVS của bạn. Tất cả các nhà phát triển khác sẽ tự động nhận được trong khi cập nhật. –
derigel
@derigel Cuộc gọi tốt. Tôi quên về điều đó. Tôi cá rằng bạn có thể làm một cái gì đó để bao gồm điều này trong một gói NuGet là tốt. Tuy nhiên tôi vẫn khuyên bạn nên chọn tùy chọn 2, nếu có. – cadrell0
Để thực hiện bước 2 như được đề xuất: http://www.jetbrains.com/resharper/webhelp/Code_Analysis__Annotations_in_Source_Code.html – Oliver