所以我试着搜索,希望有人对此有一个很好的解释,没有运气.
我问了我的另一个朋友一个不同的问题(我现在已经忘记了),他的回答只是在他签字之前的"反思".
我仍然是C#世界的新手,曾经是业余的VB.net程序员(也是JavaScript,ActionScript和C),我正在尽我所能去掌握这些先进的概念.
有许多哲学答案 - "应用程序在看自己" - 但它们没有提供任何实际的提示,说明实际发生的事情或在该环境中如何使用它.
那么,什么是反思,为什么重要,以及为什么/如何使用它?
什么是反射?我阅读了关于这个主题的维基百科文章,我理解它是一种元编程,程序可以在运行时自行修改,但这意味着什么?在什么样的情况下这是一个好的方法,何时最好使用它?
在.NET中反思需要什么?它派上用场的情况是什么?
我有一个用C#编写的Windows服务,它充当后端数据库的一堆网络设备的代理.为了测试并添加模拟层来测试后端,我希望有一个GUI供测试操作员运行模拟.还可以将条带化版本作为演示发送出去.GUI和服务不必同时运行.实现这种决斗操作的最佳方法是什么?
编辑:这是我的解决方案,从梳理的东西这个问题,我正在运行的服务和安装.NET Windows服务不InstallUtil.exe使用这个优秀的代码 由马克Gravell
它使用以下行来测试是运行gui还是作为服务运行.
if (arg_gui || Environment.UserInteractive || Debugger.IsAttached)
Run Code Online (Sandbox Code Playgroud)
这是代码.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.ComponentModel;
using System.ServiceProcess;
using System.Configuration.Install;
using System.Diagnostics;
namespace Form_Service
{
static class Program
{
///
/// The main entry point for the application.
///
[STAThread]
static int Main(string[] args)
{
bool arg_install = false;
bool arg_uninstall = false;
bool arg_gui = false;
bool rethrow = false;
try
{
foreach …Run Code Online (Sandbox Code Playgroud) 我遇到了一个叫做反射的术语。它是工厂设计模式中常用的一个特性。我很难理解这个概念,因为我还在学习如何编程。如何在 C# 或 Java 的工厂设计模式中使用反射?谁能给我一个简单的例子,并向我展示你使用反射来实现工厂设计模式的代码?
微软提供了这个反射的代码示例,但我不知道如何在工厂设计模式中使用它。
// Using GetType to obtain type information:
int i = 42;
System.Type type = i.GetType();
System.Console.WriteLine(type);
The Output is: System.Int32
Run Code Online (Sandbox Code Playgroud)