2009-01-29 59 views
11

Tôi đang làm việc để gỡ lỗi một số mã và nhận thấy một loạt các phương thức và đối tượng được tạo tự động.Mã được tạo tự động

Ở phía trên cùng của mã cho các tôi thấy những nhận xét sau đây:

//------------------------------------------------------------------------------ 
// <auto-generated> 
//  This code was generated by a tool. 
//  Runtime Version:2.0.50727.42 
// 
//  Changes to this file may cause incorrect behavior and will be lost if 
//  the code is regenerated. 
// </auto-generated> 
//------------------------------------------------------------------------------ 

Làm thế nào nào bạn tìm ra những gì tạo ra mã? Sự tò mò của tôi đã giúp tôi tốt hơn về điều này vì vậy đó là lý do tại sao tôi hỏi. Tôi đã tìm kiếm các phần của nhận xét trong Google và không tìm thấy gì cụ thể.

+30

"Mã này được tạo bởi một công cụ". Điều này luôn khiến tôi cười khúc khích một chút. –

+1

Câu hỏi này là phiên bản ** cụ thể hơn ** của bạn http://stackoverflow.com/questions/4495782/c-sharp-project-has-auto-generated-classes-but-what-auto-generated-them – gideon

Trả lời

2
//------------------------------------------------------------------------------ 
    // <auto-generated> 
    // This code was generated by a tool. 
    // Runtime Version:2.0.50727.42 
    // 
    // Changes to this file may cause incorrect behavior and will be lost if 
    // the code is regenerated. 
    // </auto-generated> 
    //------------------------------------------------------------------------------ 



namespace FirstWeb 
{ 
    public partial class _Default 
    { 

     /// <summary> 
     /// form1 control. 
     /// </summary> 
     /// <remarks> 
     /// Auto-generated field. 
     /// To modify move field declaration from designer file to code-behind file. 
     /// </remarks> 
     protected global::System.Web.UI.HtmlControls.HtmlForm form1; 
    } 
} 

Bạn sẽ không thay đổi tệp C# được tạo tự động này. Khi bạn tiếp tục thêm các điều khiển ASP.NET vào trang, tệp này sẽ phát triển với các khai báo bổ sung. Trong các phiên bản cũ hơn của C# (trước phiên bản 2.0) và Visual Studio (trước phiên bản 2005), mã này sẽ nằm trong tệp Default.aspx.cs thông thường.

Với việc giới thiệu các lớp một phần trong C#, mã thuộc cùng một lớp có thể được chia thành nhiều tệp. Ở đây bạn thấy "một phần lớp công cộng _Default", được sử dụng để giữ mã được tạo bởi nhà thiết kế Visual Studio. Bạn sẽ thấy cùng một chữ ký lớp trong tệp Default.aspx.cs (bạn sử dụng nó để viết mã tùy chỉnh của riêng bạn).

Vì vậy, nhà phát triển (bạn) và nhà thiết kế (Visual Studio) có thể hoạt động độc lập mà không cần phải bước qua nhau.

này được lấy từ First Web Program (Web Project) in C# Explained

+0

Điều này là hữu ích cảm ơn bạn. Liên kết cũng rất hay, đánh giá cao sự giải thích của bạn. –

2

Nó sẽ hoàn toàn phụ thuộc vào mã là gì.

Có lẽ bạn biết lớp bạn đang gỡ lỗi - cho dù đó là một phần của ORM, một phần của dịch vụ web được tạo proxy… Đó là thông tin quan trọng.

0

Vâng, mã là gì? Hầu hết các công cụ MS bao gồm tiêu đề này. xsd.exe làm, sqlmetal (LINQ-to-SQL) không, vv Hãy thử nhìn xuống một vài dòng ... ví dụ, một thử nghiệm xsd nhanh chóng cho tôi thấy một khối bình luận thứ hai:

// 
// This source code was auto-generated by xsd, Version=2.0.50727.3038. 
// 

Nhưng điều này doesn' t tồn tại trong mã LINQ-to-SQL ... ;-(

+0

Tôi không thấy nhận xét như bình luận thứ hai trong mã. –

+0

Sau đó, nó không phải là xsd ;-p –

0

tôi nghĩ rằng mã này được tạo ra bởi LINQ to SQL động cơ.

bạn có thể sửa đổi nó nếu bạn hiểu cách mã hóa với Sql Enitie s

+0

Cảm ơn đó là một khởi đầu tốt về nơi để tìm kiếm. –

1

Đây cũng có thể là tệp .Designer.cs được tạo bởi ResXFileCodeGenerator, tạo trình bao bọc được nhập mạnh mẽ cho các tệp .resx.

0

Những nhận xét này khớp chính xác với những nhận xét được tìm thấy trong một số tệp tham chiếu dịch vụ của tôi. Đây là các tệp proxy được tạo cho các dịch vụ WCF, vì vậy có lẽ mã của bạn cũng nằm trong khu vực này.

Nếu bạn không thể xem các tệp đó trong Solution Explorer, hãy nhấp vào 'Hiển thị tất cả tệp' và chúng sẽ xuất hiện dưới dạng tệp .cs trong nút tham chiếu dịch vụ.

0

Đây là những nhận xét chính xác được tạo ra bởi System.CodeDom khi tạo một tập tin từ toàn bộ một đơn vị mã biên dịch.

Các vấn đề liên quan