c# - 错误 CS0119:“ServiceClient”是一种类型,在给定的上下文中无效
问题描述
我收到 错误 CS0119: 'ServiceClient' 是一种类型,在我的项目的给定上下文中无效。在我的项目中,我有一个网络参考,并且我收到了这个错误。详情如下。请帮助大家,因为我不明白如何解决这个问题。
代码
private ServiceClient _client;
private ServiceClient ProfileServiceClient
{
get
{
if (_client == null)
{
//Log.Trace("Initiating Profile client");
var watch = Stopwatch.StartNew();
ServiceClient _client = new ServiceClient ();
watch.Stop();
Log.Debug("Initiating Profile took " + watch.ElapsedMilliseconds + " miliseconds");
}
return _client;
}
}
public AuthenticatedUser ResolveUser(string Id)
{
try
{
//Log.BusinessTask(string.Format("Trying to resolve '{0}' via Profile", vcnId));
var temp = ServiceClient .getProfileUser(Id, Config.ProfileAppName);
if (temp == null)
{
Log.BusinessTask(string.Format("No user found in profile with '{0}' as ID", Id));
var dummyUser = new AuthenticatedUser()
{
Id = Id,
Email = string.Empty,
FirstName = Id,
LastName = string.Empty
};
dummyUser.Roles.Add("Viewer");
Log.BusinessTask("Closing Profile client connection");
ServiceClient .Dispose();
return dummyUser;
}
Log.BusinessTask("Profile user found, mapping properties");
var result = new AuthenticatedUser
{
Id = temp.userNr,
Email = temp.email,
FirstName = temp.firstName,
LastName = temp.lastName
};
result.Roles.Add("Viewer");
Log.BusinessTask("Profile user found, mapping roles and applications");
var animatrix = ServiceClient .getTheAnimatrix(Id, Config.ProfileAppName, 0, null, null);
if (animatrix != null)
{
foreach (var matrix in animatrix)
{
if (matrix.authorisations != null)
{
foreach (var m in matrix.authorisations)
{
if (m.value.strValue == "Developer Documentation")
{
if (!result.Roles.Any(x => x.Equals("Developer", StringComparison.InvariantCultureIgnoreCase)))
result.Roles.Add("Developer");
}
if (m.value.strValue == "IsIt Documentation")
{
if (!result.Roles.Any(x => x.Equals("IsIt", StringComparison.InvariantCultureIgnoreCase)))
result.Roles.Add("IsIt");
}
if (m.characteristic == "Managed Application")
{
if (matrix.role.roleName.Contains("DEVELOPER"))
result.Applications.Add("Developer" + "/" + m.value.strValue);
else
result.Applications.Add("IsIt" + "/" + m.value.strValue);
}
}
}
}
}
Log.BusinessTask("Closing Profile client connection");
ServiceClient .Dispose();
Log.BusinessTask("Returning User object");
return result;
}
catch (Exception e)
{
Log.Error(string.Format("Couldn't reach the PROFILE auth webservice : {0}", e));
}
return new AuthenticatedUser { FirstName = "Viewer", Id = "none" };
}
在 Reference.cs 文件中
public ServiceClient () {
this.Url =
global::ProxyComponent.Properties.Settings.Default.ProxyComponent_Services_ServiceClient _ServiceClient ;
if ((this.IsLocalFileSystemWebService(this.Url) == true)) {
this.UseDefaultCredentials = true;
this.useDefaultCredentialsSetExplicitly = false;
}
else {
this.useDefaultCredentialsSetExplicitly = true;
}
}
我在这个特定的行中遇到错误ServiceClient _client = new ServiceClient (); . 这个错误的任何解决方案或任何线索?在方法 AuthenticatedUser ResolveUser(string Id) line var temp = ServiceClient .getProfileUser(Id, Config.ProfileAppName) ServiceClient throws error like throws an exception of type 'System.TypeInitializationException' 。 InnerException {“对象引用未设置为对象的实例。”}
解决方案 好的,我找到了解决方案。我必须改变这条线
var temp = ServiceClient .getProfileUser(Id, Config.ProfileAppName);
对此
_client = new ServiceClient();
var temp = _client.getProfileUser(Id, Config.ProfileAppName);
解决方案
看起来编译器几乎将服务客户端与另一种类型混淆了。也许尝试使用带有完整命名空间的 ServiceClient?像 FullProjectNamespace.ServiceClient _serviceClient = new...
推荐阅读
- sql - Debezium SQL Server 源连接器在连接器重新启动后跳过记录
- firebase - 如何将 initState 中的 if 语句与 Flutter 和 Firebase 一起使用?
- python - Python Pool - 当我遇到超时异常时,如何保持 Python 进程运行?
- sql - 在第二列的两个值之间选择一个值
- microsoft-dynamics - Dynamics 365 在活动的子网格中隐藏新按钮
- java - Java Apache Ignite 事件侦听器意外行为
- php - 根据php 7.2中折旧的NULL常量检查数组是否包含值的最佳替代方法是什么
- amazon-web-services - 具有动态容量的账户中的 EC2 预留实例计费
- log4j - 使用 log4j 将 spring 日志转移到特定的日志文件
- python - 如何使用opencv自动将源图像转换为目标图像