我有两个项目(在相同的解决方案下)-Teacher
和Student
.
Student
项目有参考Teacher
。
public static class Student
{
public static readonly string SchoolName="ABC University";
}
现在我如何SchoolName
从Teacher
项目访问。
真的有可能吗?如果是的话,你能告诉我路吗?
我是编程菜鸟。所以,如果这是一个非常愚蠢的问题,请原谅我。提前致谢。
您可以制作第三个项目。这个项目被另外两个引用。在第三个项目中,您可以以一种简单的方式保存例如全局值。(例如您的静态值)。但可以肯定的是,您必须通过 Student 项目在第三个项目中设置值。
要访问真正的“对象”属性,您必须做更多的工作,例如在第三个项目中定义通用接口。
但我认为你可以采用第一种方法。
也许不是最好的方法,但一种有效的方法。
是的,这是可能的。您可以访问尚未引用到您的项目的程序集。以下是您可以使用的代码。
在以下方法中,我在程序集中有一个用户控件,我正在访问它而不引用它。您可以根据需要更改代码。这段代码是VB的,你需要把它改成c#。:-)
Dim oAssembly As Assembly = Nothing
Dim oType As Type = Nothing
Dim oUserControl As System.Windows.Forms.UserControl = Nothing
Dim oArgs As [Object]() = New [Object]() {Me} 'Arguments that you need to pass to the assembly
Try
' Set Assembly
oAssembly = Assembly.LoadFrom("Your DLL Path")
For Each currentType In oAssembly.GetTypes()
If currentType.Name.ToLower.Contains("Name of the class or object in assembly") Then
oType = currentType
Exit For
End If
Next
oUserControl = DirectCast(oAssembly.CreateInstance(oType.FullName, True, BindingFlags.CreateInstance, Nothing, oArgs, Nothing, Nothing), System.Windows.Forms.UserControl)
Return oUserControl
Catch ex As Exception
Return Nothing
End Try
以下是一些步骤:
您可以通过教师项目的编码来访问静态类 Student,如下所示:
void DoSomething() {
string schoolName = Student.SchoolName;
}