2

我有两个项目(在相同的解决方案下)-TeacherStudent. Student项目有参考Teacher

public static class Student
{
public static readonly string SchoolName="ABC University";
}

现在我如何SchoolNameTeacher项目访问。

真的有可能吗?如果是的话,你能告诉我路吗?

我是编程菜鸟。所以,如果这是一个非常愚蠢的问题,请原谅我。提前致谢。

4

3 回答 3

2

您可以制作第三个项目。这个项目被另外两个引用。在第三个项目中,您可以以一种简单的方式保存例如全局值。(例如您的静态值)。但可以肯定的是,您必须通过 Student 项目在第三个项目中设置值。

要访问真正的“对象”属性,您必须做更多的工作,例如在第三个项目中定义通用接口。

但我认为你可以采用第一种方法。

也许不是最好的方法,但一种有效的方法。

于 2013-07-24T01:01:00.957 回答
0

是的,这是可能的。您可以访问尚未引用到您的项目的程序集。以下是您可以使用的代码。

在以下方法中,我在程序集中有一个用户控件,我正在访问它而不引用它。您可以根据需要更改代码。这段代码是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
于 2013-07-24T05:40:02.413 回答
-1

以下是一些步骤:

  1. 将学生项目的引用添加到教师项目
  2. 您可以通过教师项目的编码来访问静态类 Student,如下所示:

    void DoSomething() {
        string schoolName = Student.SchoolName;
    }
    
于 2013-07-24T00:21:02.350 回答