【发布时间】:2014-09-03 14:34:55
【问题描述】:
我有一个文件夹。我有三个 cs 文件。
Demo.cs
using System;
namespace Demo
{
public class Test
{
public static Entity entity = new Entity();
public static void Main(string[] args)
{
var objectHandler = Activator.CreateInstance(null,
args);
var obj = objectHandler.Unwrap();
entity.GetAnnotation(obj.GetType());
}
}
}
Entity.cs
using System;
namespace Demo
{
public class Entity
{
public void GetAnnotation(Type classname)
{
Attribute[] dataAnnotationlist = Attribute.GetCustomAttributes(propInfo);
foreach (var dataannotationAttribute in dataAnnotationlist)
{
//some operation to get annotation property from Employee.cs class
}
}
}
}
Employee.cs
using System.ComponentModel.DataAnnotations;
namespace Demo
{
public class Employee
{
[Display(Name = "name")]
public string name { get; set; }
}
}
我使用反射从类文件 (Employee.cs) 创建了 XML 文件格式。 但是尝试通过命令提示符运行时发生错误。它在视觉工作室中运行。
我想使用命令提示符运行 Test.cs、Entity.cs,并将“Employee.cs”作为字符串参数传递给 Main 方法。 现在,我通过了硬编码,
System.Runtime.Remoting.ObjectHandle objectHandler = Activator.CreateInstance(null, "Demo.Employee");
它工作正常,但是如何通过命令传递它。
发生的错误是:
Entity.cs(8,29):错误 CS0234:类型或命名空间名称 命名空间中不存在“DataAnnotations” “System.ComponentModel”(您是否缺少程序集引用?) Entity.cs(9,19):错误 CS0234:类型或命名空间名称 '对象' 命名空间“System.Data”中不存在(您是否缺少 程序集参考?)Employee.cs(6,33):错误CS0234:类型或命名空间名称'DataAnnotations'确实 命名空间“System.ComponentModel”中不存在(您是否缺少 汇编参考?)
它还显示“DataAnnotations”和“Objects”的错误。
我该如何解决这个问题?
【问题讨论】:
-
“当尝试通过命令提示符运行时”是什么意思?你能显示你使用的命令吗?
-
System.Data.DataAnnotations命名空间的成员在 System.ComponentModel.DataAnnotations.dll 程序集中声明。被引用了吗? -
csc /out:Test.exe Test.cs Entity.cs Employee.cs
-
是的,我已经在我的项目中添加了这个 dll,但它在命令提示符下显示错误。
-
我已经更新了标题“运行”->“编译”,因为看起来您实际上是在尝试编译文件而不是运行。随意改进/恢复。
标签: c#