比如说,我有一个MVC模型
public class MyModel
{
[Display(Name = "Sophistically-named field", Description = "blah-blah")]
public int SophisticallyNamedField {get;set;}
}
有没有办法从注释中获得字段的名称和描述?我需要的是C#代码,而不是Razor。
这是一个有趣的概念,我不知道如何实现。(这与我需要部署装饰器模式的大学作业有关)。
我已经在下面写了粗略的C#代码,但是不能编译,假设我有一个类
Class A {
public int A { get; set; }
public string B { get; set; }
public float C { get; set; }
public string concatFields() {
string sample = null;
foreach (Field f in this) {
sample += f.
病态的好奇心。假设我有这样的等级:
class Base {
public virtual int Field { get; set; }
}
class Derived : Base {
int _field;
public override int Field { get { return _field; } set { _field = value; } }
}
如果实例化Base,编译器将神奇地为Field属性创建一个后备字段。
因此,假设Derived不引用基本实现,那么当Derived被实例化时,是否会创建备份字段?这是在C#规范中指定的,还是留给编译器实现?
更新
我必须从C#的企业资源规划系统中提取一些数据。不深入讨论SAP的细节(我相信您不会想知道它的)。
我正在从C#内部调用一些远程函数,它可以正常工作,但我遇到了一个奇怪的问题。在C#中,我必须调用的函数之一是BAPI_USER_GET_DETAIL。
所以我在C#中这样做:
s.Bapi_User_Get_Detail("No","10217502", out address, out alias, out companyName,
out defaults, out islocked, out lastmodified,
我一直在尝试反思,但我有一个问题。
假设我有一个类,在这个类中,我有一个使用c# 6.0的新特性初始化的属性
Class MyClass()
{
public string SomeProperty{ get; set; } = "SomeValue";
}
在不初始化类的情况下,有什么方法可以通过反射获得这个值吗?
我知道我能做到
var foo= new MyClass();
var value = foo.GetType().GetProperty("SomeProperty").GetValue(foo);
但我想做的是类似的事情;
typeof(
我提出一个简单的模型:
public class UserDocument
{
[BsonRepresentation(BsonType.ObjectId)]
public string Id { get; set; }
public string DisplayName { get; set; }
public List<string> Friends { get; set; }
}
我使用的是最新的C#驱动程序,它可以使用C#对象替换文档,该对象将自动更新其所有字段。问题是,除了用户朋友之外,我想更新所有字段,因为它是一个包含与其他文档的对象
要创建一个(服务)方法来使用返回一个对象(用于DDL的ViewModel)并提供这两个字段名作为参数,C#代码是什么?
DDL用于下拉列表:
public class DDLitems {
public string text {get;set;}
public string value {get;set}
}
我的可怕的伪C#代码想法:(是的,还不知道怎么做):
public IList<DDLobject> AutoMapDDLvalue( IList<object> source,
我正在进行一些代码的微基准测试(请注意),并发现了这个难题:当使用反射读取字段时,调用getter方法比读取字段要快。
简单测试类:
private static final class Foo {
public Foo(double val) {
this.val = val;
}
public double getVal() { return val; }
public final double val; // only public for demo purposes
}
我们有两个想法:
Method m = Foo.class.getD
下面是一个可以使用NHibernate映射的“简化”类;
public class Template
{
public virtual int Id { get; private set; }
public virtual string Name { get; set; }
}
因为ID字段有一个私有的setter,所以我们不能再在我们的应用程序中有这样的代码,我们手动设置ID字段;
var DefaultTemplate = new Template { ID = (int)TemplateEnum.Default, Name = "Default" }
在这里,我们
我感到困惑,因为在我的业余时间,我一直在阅读C#的书籍,以变得熟悉的语言。
我无意中发现了属性的使用;在这种情况下,它涉及到在我的类中使用getter/setter作为私有的字段。
为了保持简单,我的代码中有这样的内容:
class ClassName
{
private int hWorked = 24;
public int HoursWorked
{
get
{
return hWorked;
}
}
}
现在这本书说:
如果我使用短手版本-- public int HoursWorked
我的一个JSON端点返回如下结构的.Net对象
public class UserModel
{
public int StudentID { get; set; }
public int ClassID { get; set; }
public string ClassName { get; set; }
public int TestLevelID { get; set; }
public string Firstname { get; set; }
public string
fieldInfo类中的SetFields方法将对象作为第一个参数。有没有办法在C#中使用反射来更改静态只读字段的值?
到目前为止,我已经
var field = typeof(ClassName).GetField("FieldName",BindingFlags.Instance|BindingFlags.NonPublic);
我有一个C#类,它看起来像:
public class MyClass {
private Member member;
public MyClass() {
member = new Member();
}
//.. other properties and methods here.
}
public class Member {
public String property1 { get; set; }
public bool isSet { get; set; }
// other things to do.
}
我收到以下信息:
警告:字段从未被分配给,并且它的默认值总是为null。
我的代码看起来像(它简化了,太无用了):
public class MyEntity
{
// ...
public string MyProp { get; set; }
}
public class MyClass
{
string dbMyProp;
public string MyProp { get { return dbMyProp.Replace("a", "b"); } }
public static readonly
今天我参加了一个面试,有人问我,下面的代码是不是在C#中使用反射的一个好例子/案例
public abstract class Level{
public string LevelID { get; private set;}
public int LevelNumber {
get{
return int.Parse(LevelID.Substring(5).ToString());
}
}
public Level(){
this.LevelID = GetType().ToStri
我需要为30种不同类型的自定义业务对象提供自动模拟。为了避免为每个实体中的所有公共属性编写手动模型代码的成本,我正在寻找一个可以在我的项目中使用的轻量级框架。实际上,这不是用于单元测试,而是用于“预览”功能。
至于mocking的行为,我想使用底层实体的数据类型。例如,
public class Customer
{
public int CustomerID { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTi
我目前对C#非常陌生,我的大部分知识来自于Java & Python。尽管如此,我目前有以下代码:
public class Person
{
public int Person_ID { get; set; }
public String First_Name { get; set; }
public String Last_Name { get; set; }
public String EmailAddress { get; set; }
public String FullInfo
{
get
所以我想得到一个类的字段
public class Person
{
public string Id { get; set; }
public string Firstname { get; set; }
public string Lastname { get; set; }
}
因此,我将能够从类中获取公共字段名,在本例中,我需要一个字符串列表{"Id“、"Firstname”、"Lastname"}
注意:这是我刚开始C#的时候发布的。有了2014年的知识,我可以真正地说,汽车属性是C#语言所经历的最好的事情之一。
我习惯于使用私有和公共字段在C#中创建我的属性:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
现在,使用 3.0,我们获得了自动属性:
public string Title { get; set; }
我知道这更多是一个哲学/主观的问题,但是除了为每个字段节省5行代码之外,还有什么理由使用这些自动属性吗?我个人的抱怨是,
public class Rating
{
public string Source { get; set; }
public string Value { get; set; }
}
public class RootObject
{
public string Title { get; set; }
public string Year { get; set; }
public string Rated { get; set; }
public string Released { get; set; }
public string
在C#中,有没有一种方法可以用变量调用对象的属性,如下所示:
string fieldName = "FirstName";
Console.WriteLine(customer.&fieldName);
答案:
太好了,谢谢你的快速回答,这就是我想要做的:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace TestLinqFieldIndex
{
class Program
{
st
我有一个class,它有一个属性:
public class MyClass
{
[CustomAttribute]
public CustomObject Data { get; set; }
}
CustomAttribute有一个参数,我希望它的值能够在代码中的各个点用编译时常量进行设置。
我的问题是:是否可以做如下所示的事情
public class MyClass
{
// --- Based on the below code, Parameter should be 123
[CustomAttribute(Parameter = HelperAt
所以,我目前面临的问题是:
I有从XML动态生成的C#业务对象类。动态构建表单以显示和捕获绑定到业务对象的数据。将序列化()对象存储到数据库中。需要持久化与业务对象C#类中的每个属性相关联的显示属性(如何实现?)
假设我有一个Person Business Object:
public class Person
{
public string Name {get;set;}
public PhoneType Phone {get;set;}
}
public class PhoneType
{
public string HomePhone{get;set;}
pub
因此,目前有一个比较项目,我正在工作,我收到了一个列表,与两个类别的信息,我需要比较。我正在用C#做这个项目,它正在MVC网页上显示。我对C#很新,对web完全陌生。
我知道我可以一个一个地写出来比较这些元素。
EX:
List<ESHClass> eshlist; //This just to show that eshlist is of type ESHClass and i'm
purposefully comparing two elements from the same list
bo
我得到了一个包含大约200个字段的类,其中它们的值是使用反射读取的。它基本上看起来像这样
for (Field f : this.getClass().getFields())
{
try
{
Object o = f.get(this);
if (f.getType() == String.class)
{
//do things with the string