我有一个直接调用业务层的 asp.net 应用程序,并且相同的业务层作为 WCF 服务公开,以便其他一些应用程序(外部网站/控制台应用程序)可以使用它。
在我的 BL 中,我想确定调用是来自我的本机 asp.net 应用程序还是来自 WCF 调用,是否有任何万无一失的方法可以在不传递额外参数的情况下确定这一点?
您可以获取调用方法的名称、模块或其他信息。
using System.Diagnostics;
var stackTrace = new StackTrace();
var callingMethod = stackTrace.GetFrame(1).GetMethod();
var methodName = callingMethod.Name;
var methodModule = callingMethod.Module;
// etc.
文档:http: //msdn.microsoft.com/en-us/library/system.reflection.methodbase.aspx