我目前有一个类首先看起来像这样:
public class Controller
{
public class Configuration
{
// Properties of the Database
public string Name { get; set; }
public string BusinessID { get; set; }
public string Address { get; set; }
}
然后我有一些实际将数据绑定到属性的函数 - 工作正常。但是,我似乎无法找到有关访问类属性的任何文档。我试过了:
Controller ctrl;
ctrl = new Controller();
但是,ctrl
不包含任何这些值/属性;它也不包含Configuration
类。
此结构是否有问题导致Configuration
无法访问,或者是否有人可以帮我找到获取Name
,BusinessID
和Address
的解决方案?
编辑:我想在aspx.cs
文件中获取课外的属性。
提前致谢。
答案 0 :(得分:3)
如果我正确理解了您的用例,下面的内容是一种方法。
您可以通过以下方式为第二个类创建实例:
Controller.Configuration ac = new Controller.Configuration();
答案 1 :(得分:3)
类只是实际实例的蓝图。你的代码定义了两个类,但是封闭的一个(Controller)没有一个属性来访问所包含的内部类(Configuration)
如果要设置/获取属于Controller类实例的Configuration类实例的属性,则应在Controller类的Configuration类中声明成员属性
public class Controller
{
public class Configuration
{
// Properties of the Database
public string Name { get; set; }
public string BusinessID { get; set; }
public string Address { get; set; }
}
// If you don't want external code set the internal instance remove the set method
public Configuration ctrlConfig {get;set;}
public Controller()
{
// Remember to initialize the inner instance of the configuration
ctrlConfig = new Configuration()
}
}
现在在其他地方
Controller ctrl;
ctrl = new Controller();
ctrl.ctrlConfig.Name = "YourConfigName";
答案 2 :(得分:2)
试试这个:
public class Controller
{
Configuration c;
public class Configuration
{
// Properties of the Database
public string Name { get; set; }
public string BusinessID { get; set; }
public string Address { get; set; }
}
}
然后您将能够访问这些值:
Controller ctrl = new Controller();
ctrl.c = new Configuration();
答案 3 :(得分:1)
我认为你的目标是这个设置:
public class Controller
{
public Controller()
{
this.Config = new Configuration();
}
public Configuration Config { get; set; }
}
public class Configuration
{
public string Name { get; set; }
public string BusinessID { get; set; }
public string Address { get; set; }
}
然后你可以这样做:
Controller ctrl;
ctrl = new Controller();
Console.WriteLine(ctrl.Configuration.Name);
在原始代码中,另一个类中有一个定义类。在我的示例中,Controller
具有类型为Configuration
的属性,它在构造函数(public Controller()
)中实例化。
答案 4 :(得分:1)
您已定义了一个类(Controller)和一个内部类(Controller.Configuration)
因此,您定义的属性是Controller.Configuration类的域,而不是控制器的域。
所以你应该:
@RenderSection("head", required: false)
另外,你可以在Controller中创建一个Configuration类型的属性,你可以使用它..
// istantiate a controller.configuration instance
Controller.Configuration p = new Controller.Configuration();
// and use his properties
p.Name = "test";
答案 5 :(得分:0)
要使它工作有两种可能性(从你想要的问题中不清楚)
您需要Configuration
类的实例,并在构造函数
public Configuration Configuration_Instance {get;set;}
public Controller() {
Configuration_Instance = new Configuration();
}
并使用
ctrl.Configuration_Instance.Name //etc.
make Configuration
static
public static class Configuration {
public static string Name { get; set; }
public static string BusinessID { get; set; }
public static string Address { get; set; }
}
并使用
ctrl.Configuration.Name //etc.