using System;
// Assembly2.cs
// Compile with: /reference:Assembly1.dll
public class DerivedClass: BaseClass
{
static void Main()
var baseObject = new BaseClass();
var derivedObject = new DerivedClass();
// Error CS1540, because myValue can only be accessed by
// classes derived from BaseClass.
// baseObject.myValue = 10;
// OK, because this class derives from BaseClass.
derivedObject.myValue = 10;
}
// Assembly1.cs
// Compile with: /target:library
public class BaseClass
protected internal int myValue = 0;
class TestAccess
void Access()
baseObject.myValue = 5;