.


:




:

































 

 

 

 





, " ". . log (). , , . NotTrace:

 

[AttributeUsage(AttributeTargets.Field) ]

public class NotTrace: Attribute

{

}

 

, :

 

static bool NeedTrace(FieldInfo fi)

{ return! Attribute.IsDefined(fi, typeof(NotTrace));

}

 

, , NotTrace:

 

foreach (FieldInfo fi in type.GetFields(...))

{ if (! NeedTrace(fi))

continue;

...

}

 

, . , .

. , , , .

1. Windows Forms. , 1.

2. : ( MenuStrip), , .

3. TreeView , ImageList, ImageList TreeView ( ImageList), , OpenFileDialog.

4. CSharp, OpenFileDialog:

 

// OpenFileDialog

private string selectAssemblyFile()

{

openFileDialog1.Filter = "Dll files (*.dll)|*.dll|Exe files

(*.exe)|*.exe| All files (*.*)|*.*";

openFileDialog1.Title = "Select assembly file";

return (openFileDialog1.ShowDialog() == DialogResult.OK)?

openFileDialog1.FileName: null;

}

 

//

private Assembly openAssembly(string path)

{

try

{

Assembly a = Assembly.LoadFrom(path);

return a;

}

catch (Exception)

{

MessageBox.Show(" !",

"!", MessageBoxButtons.OK, MessageBoxIcon.Error);

return null;

}

}

 

5. :

 

private Assembly assembly;

 

6. , , :

 

//

void addRoot(TreeNode root, Type[] types)

{

TreeNode node = null;

foreach (Type type in types)

{

node = new TreeNode();

node.Text = type.ToString();

//

if (type.IsClass)

{

node.ImageIndex = 1;

node.SelectedImageIndex = 1;

addFirstLevel(node, type);

root.Nodes.Add(node);

}

//

else if (type.IsInterface)

{

node.ImageIndex = 2;

node.SelectedImageIndex = 2;

addFirstLevel(node, type);

root.Nodes.Add(node);

}

}

}

 

// ,

private void addFirstLevel(TreeNode node, Type type)

{

TreeNode node1 = null;

 

FieldInfo[] fields = type.GetFields();

MethodInfo[] methods = type.GetMethods();

ConstructorInfo[] constructors = type.GetConstructors();

 

//

foreach (FieldInfo field in fields)

{

node1 = new TreeNode();

node1.Text = field.FieldType.Name + " " + field.Name;

node1.ImageIndex = 5;

node1.SelectedImageIndex = 5;

node.Nodes.Add(node1);

}

 

//

foreach (ConstructorInfo constructor in constructors)

{

String s = "";

ParameterInfo[] parametrs = constructor.GetParameters();

foreach (ParameterInfo parametr in parametrs)

{

s = s + parametr.ParameterType.Name + ", ";

}

s = s.Trim();

s = s.TrimEnd(',');

node1 = new TreeNode();

node1.Text = node.Text + "(" + s + ")";

node1.ImageIndex = 6;

node1.SelectedImageIndex = 6;

node.Nodes.Add(node1);

}

 

//

foreach (MethodInfo method in methods)

{

String s = "";

ParameterInfo[] parametrs = method.GetParameters();

foreach (ParameterInfo parametr in parametrs)

{

s = s + parametr.ParameterType.Name + ", ";

}

s = s.Trim();

s = s.TrimEnd(',');

node1 = new TreeNode();

node1.Text = method.ReturnType.Name + " " + method.Name + "("

+ s + ")";

node1.ImageIndex = 4;

node1.SelectedImageIndex = 4;

node.Nodes.Add(node1);

}

}

 

7. :

 

private void ToolStripMenuItem_Click(object sender,

EventArgs e)

{

treeView1.Nodes.Clear();

string path = selectAssemblyFile();

if (path!= null)

{

assembly = openAssembly(path);

}

if (assembly!= null)

{

TreeNode root = new TreeNode();

root.Text = assembly.GetName().Name;

root.ImageIndex = 0;

root.SelectedImageIndex = 0;

treeView1.Nodes.Add(root);

Type[] types = assembly.GetTypes();

addRoot(root, types);

}

}

 

8. . , , c WINDOWS\Microsoft.NET\Framework.

2.1.

2.1

, , TreeView , , . , , ListView . , ListView , .

. , .

- ;

- ;

- ;

- ;

- ( , );

- .

1. ?

2. ?

3. ?

4. ?

5. ?

6. exe dll?


3 3
ADO.NET

, ADO.NET, ADO.NET.

ADO.NET

ADO.NET (ActiveX Data Object. NET) , .NET. ADO.NET , , XML.

ADO.NET . System.Data.Common , System.Data.SqlClient, System.Data.Odbc ..

, , DbProviderFactory, , .

ADO.NET : , , (. 3.1).

3.1 ADO.NET

, , . , , , .





:


: 2016-11-24; !; : 377 |


:

:

, .
==> ...

1702 - | 1524 -


© 2015-2024 lektsii.org - -

: 0.026 .