В бизнес-классе вы НИКОГДА не должны использовать прямую связь с пользователем.
Это потому, что пользовательский интерфейс может быть winforms / webforms / console / smart_devices / etc ... или пользовательский интерфейс не используется (например, в скриптах).
Если вам нужно определиться с пользователем в бизнес-процессе, вы можете использовать несколько способов, как это сделать. В .NET это один из простых способов событий.
Например:
public class MyBussinesClass {
public void DoSomeBussinesRelatedWork() {
// ... some code and then you need a users decision
var argWhichCurrencyToUse = new DecisionEventArgs {
Title = "Currency selection",
Text = "Which currency you want to use in bill?",
Answer = "USD"
};
this.OnDecisionRequred( argWhichCurrencyToUse );
// ... contine in work ...
}
protected void OnDecisionRequired( DecisionEventArgs e ) {
// run the event
}
public event EventhHandler<DecisionEventArgs> DecisionRequired;
}
public class DecisionEventArgs {
public string Title {get;set;}
public string Text {get;set;}
public object Answer {get;set;}
}
Затем пользовательский интерфейс может перехватывать события и отображать правильный пользовательский интерфейс (окно сообщения, поле ввода, веб-форма, чтение / запись консоли и т. Д. ...