Tengo una clase A con un método público en C#. Quiero permitir el acceso a este método solo a la clase B. ¿Es esto posible?¿Hay alguna manera de restringir el acceso a un método público a solo una clase específica en C#?
ACTUALIZACIÓN:
Esto es lo que me gustaría hacer:
public class Category
{
public int NumberOfInactiveProducts {get;}
public IList<Product> Products {get;set;}
public void ProcessInactiveProduct()
{
// do things...
NumberOfInactiveProducts++;
}
}
public class Product
{
public bool Inactive {get;}
public Category Category {get;set;}
public void SetInactive()
{
this.Inactive= true;
Category.ProcessInactiveProduct();
}
}
me gustaría que otros programadores que hacer:
var prod = Repository.Get<Product>(id);
prod.SetInactive();
me gustaría asegúrese de que no llaman manualmente a ProcessInactiveProduct:
var prod = Repository.Get<Product>(id);
prod.SetInactive();
prod.Category.ProcessInactiveProduct();
Quiero permitir el acceso de Category.ProcessInactiveProduct solo a la clase Product. Otras clases no deberían poder llamar a Category.ProcessInactiveProduct.
+1 Pregunta muy interesante. –
Si solo desea que acceda a la clase B, este no es un método "público". – Nate